【问题标题】:Problem with WCF and SSLWCF 和 SSL 的问题
【发布时间】:2011-09-12 23:29:43
【问题描述】:

我在使用 SSL 和 WCF 使 Web 服务正常工作时遇到问题。

如果我在 IIS 中签入“需要 SSL”,则会收到此错误:

WebHost 未能处理请求。

发件人信息: System.ServiceModel.ServiceHostingEnvironment+HostingManager/36097441 异常:System.ServiceModel.ServiceActivationException:服务 '/' 由于编译过程中的异常而无法激活。这 异常消息是:服务 'ISS.MS.WebServices.MessageDispatch.MessageDispatchWebService' 有 零应用程序(非基础设施)端点。这可能是因为 没有为您的应用程序找到配置文件,或者因为没有 与服务名称匹配的服务元素可以在 配置文件,或者因为没有定义端点 服务元素.. ---> System.InvalidOperationException:服务 'ISS.MS.WebServices.MessageDispatch.MessageDispatchWebService' 有 零应用程序(非基础设施)端点。这可能是因为 没有为您的应用程序找到配置文件,或者因为没有 与服务名称匹配的服务元素可以在 配置文件,或者因为没有定义端点 服务元素。

但是,如果我取消选中它,页面会在浏览器中正常加载,但随后出现此错误 当我尝试调用它时。

服务'ISS.MS.WebServices.MessageDispatch.MessageDispatchWebService' 具有零应用程序(非基础设施)端点。这可能是 因为没有为您的应用程序找到配置文件,或者 因为找不到与服务名称匹配的服务元素 配置文件,或者因为没有定义端点 服务元素。

这是配置:

<system.serviceModel>
    <services>
        <service name="ISS.MS.WebServices.MessageDispatchWcfService">
            <endpoint
                address="" 
                binding="basicHttpBinding" bindingConfiguration="basicHttpBinding_MS2" 
                contract="ISS.MS.WebServices.IMessageDispatchWcfService" />
            <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />
        </service>
    </services>
    <behaviors>
        <serviceBehaviors>
            <behavior>
                <serviceDebug includeExceptionDetailInFaults="False" />
                <serviceMetadata httpsGetEnabled="true"/>
            </behavior>
        </serviceBehaviors>
    </behaviors>

    <bindings>
        <basicHttpBinding>
            <binding name="basicHttpBinding_MS2" >
                <readerQuotas maxStringContentLength="1048576" />
               <security mode="Transport">
                </security>
            </binding>
        </basicHttpBinding>
    </bindings>

    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true">
    </serviceHostingEnvironment>
</system.serviceModel>

我可以使用普通的 HTTP 让它完美地工作,但 HTTPS 不起作用。

我猜是 IIS 设置问题还是 WCF 配置问题?

【问题讨论】:

    标签: wcf


    【解决方案1】:

    我想通了,服务和合同的名称不正确……好尴尬。

    任何人都知道为什么即使这些不正确,它仍然可以在 HTTP 上工作?

    【讨论】:

    • 谢谢。这刚刚结束了大约 8 小时的调试。
    【解决方案2】:

    (关于“multipleSiteBindingsEnabled”):要为服务启用每个站点的多个 IIS 绑定,请将此属性设置为 true。请注意,仅 HTTP 协议支持多站点绑定。

    参考:http://msdn.microsoft.com/en-us/library/system.servicemodel.configuration.servicehostingenvironmentsection.multiplesitebindingsenabled.aspx

    试试这个

    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="false">
    </serviceHostingEnvironment>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-30
      • 1970-01-01
      • 2012-08-10
      • 1970-01-01
      • 2011-01-16
      • 2014-08-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多