【问题标题】:SilverLight HTTPS , basichttpbinding and custombindingSilverLight HTTPS , basichttpbinding 和 custombinding
【发布时间】:2014-02-05 15:00:55
【问题描述】:

我正在将我的 SL5 应用程序从 http 切换到 https,但我的 WCF 服务遇到了问题。

那些使用自定义绑定的人工作正常,但那些使用基本httpbinding的人却不行。

为什么?

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 :

<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>

使用基本httpbinding的服务的Web.config

<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>

谢谢!

【问题讨论】:

    标签: c# wcf silverlight ssl https


    【解决方案1】:

    好的,感谢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 中的服务名称没有更新以反映导致问题的更改。

    【讨论】:

      猜你喜欢
      • 2011-07-04
      • 2010-10-06
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-17
      • 1970-01-01
      相关资源
      最近更新 更多