IIS:使用https和GET的WCF服务
我正在尝试为https绑定创建一个WCF服务。 该服务与之前的http一起工作。 我更改了绑定(带证书),现在我配置了web.config - 但我总是收到错误代码“400 - 错误请求”。
使用以下方式调用Web服务:https:// servername:444 / FolderService.svc / FolderExists / 1234 https:// servername:444 / FolderService.svc / Test
这是我的服务界面:
[ServiceContract]
public interface IFolderService
{
[OperationContract]
[WebGet(RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, UriTemplate = "/FolderExists/{accountnumber}")]
bool FolderExists(string accountnumber);
[OperationContract]
[WebGet(RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, UriTemplate = "/Test")]
string Test();
}
这是我的web.config:
<?xml version="1.0"?>
<configuration>
<system.serviceModel>
<services>
<service name="myService.FolderService">
<endpoint address=""
binding="basicHttpBinding"
bindingConfiguration="secureHttpBinding"
contract="myService.IFolderService"/>
</service>
</services>
<bindings>
<basicHttpBinding>
<binding name="secureHttpBinding">
<security mode="Transport">
<transport clientCredentialType="None"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpsGetEnabled="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
我尝试了许多不同的配置,但没有成功。 有没有人有一个想法(或一个工作示例)?
提前致谢!
您正试图通过URL以RESTful方式访问您的方法。 但是,您的web.config中有什么错误是您正在使用BasicHttpBinding
,它用于SOAP Web服务而不是RESTful Web服务。
WebGet
和WebInvoke
是添加到您的操作中的必要属性,正如您已经完成的那样。
但是,端点的正确绑定是WebHttpBinding
,您需要应用到端点的行为是WebHttpBehavior
。
示例缩写配置:
<service>
<endpoint behaviorConfiguration="webBehavior"
binding="webHttpBinding"
contract="myService.IFolderService"
bindingConfiguration="secureHttpBinding" />
</service>
<endpointBehaviors>
<behavior name="webBehavior">
<webHttp />
</behavior>
</endpointBehaviors>
链接地址: http://www.djcxy.com/p/42025.html
上一篇: IIS: WCF service with https and GET
下一篇: Maximum request length exceeded exception, maxContentLength not working