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服务。

WebGetWebInvoke是添加到您的操作中的必要属性,正如您已经完成的那样。

但是,端点的正确绑定是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