2014-02-05 49 views
0

我将我的SL5应用程序从http切换到https,并遇到了我的WCF服务问题。SilverLight HTTPS,basichttpbinding和自定义绑定

那些使用自定义绑定工作正常,但不是那些使用basichttpbinding。

为什么?

ServiceReferences.ClientConfig:

<configuration> 
    <system.serviceModel> 
    <bindings> 
     <basicHttpBinding> 
     <binding name="MyBindingName" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"> 
      <security mode="Transport" /> 
     </binding> 
     </basicHttpBinding> 
     <customBinding> 
     <binding name="CustomBinding_WebService"> 
      <binaryMessageEncoding /> 
      <httpTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" /> 
     </binding> 
     </customBinding> 
    </bindings> 
<client> 
     <endpoint address="../MyBasicService.svc" 
     binding="customBinding" bindingConfiguration="MyBindingName" 
     contract="ServiceContract" 
     name="MyBindingName" /> 
     <endpoint address="../MyService.svc" 
     binding="customBinding" bindingConfiguration="CustomBinding_WebService" 
     contract="ServiceContract" 
     name="CustomBinding_WebService" /> 
    </client> 
    </system.serviceModel> 
</configuration> 

的Web.config服务使用自定义绑定:使用basicHttpBinding的

<binding name="basicHttpBinding" maxBufferSize="2147483647" 
      maxReceivedMessageSize="2147483647"> 
      <security mode="Transport"/> 
     </binding> 

     <service name="ReportService" behaviorConfiguration="ReportServiceBehavior" > 
    <endpoint address="" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ReportingService" contract="ReportServiceContract" />  
    <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" /> 
     </service> 

<behavior name="ReportServiceBehavior"> 
      <serviceMetadata httpsGetEnabled="true"/> 
      <serviceDebug includeExceptionDetailInFaults="false"/> 
     </behavior> 

感谢

<binding name="customBinding0"> 
      <binaryMessageEncoding /> 
      <httpsTransport /> 
     </binding> 

<service name="WorkingCustomService"> 
     <endpoint address="" binding="customBinding" bindingConfiguration="customBinding0" contract="WebService"/> 
     <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" /> 
     </service> 

的Web.config的服务!

回答

0

好了,找到了解决办法感谢:configuring WCF with <services> tag

我的服务的名称是不尊重这个规则:

Your service name must be the fully qualified name (YourNamespace.YourClassName) of your service class - the class that implements your service contract 

这显然是不HTTPS的问题,但它是一个在HTTPS。

编辑:在我的情况下,文件.svc在开发过程中被移动,但web.config中的服务名称未更新以反映引起问题的更改。

相关问题