WCF SSL端点报告404,没有端点侦听

时间:2011-05-17 16:48:28

标签: c# asp.net wcf ssl

我们有一个WCF Web服务,遗憾的是,它必须使用SOAP 1.1 + SSL,因此我使用basicHttpBinding而不是wsHttpBinding。我相信我的web.config是有序的,因为我已经将它与stackoverflow和MSDN文章中的无数其他人进行了比较。我对其他问题解决方案没有任何好运,因为每个人似乎都在为所有SSL绑定示例使用wsHttpBinding。

StackOverflow上的许多建议导致服务器配置错误,例如SSL Headers,但我已经向管理我们的IIS的人员确认SSL端口绑定和SSL主机头正确配置(就我们而言)可以告诉)。但是,我们使用通配符证书,我已经阅读过,这可能会使此流程复杂化(由于链接上的新用户限制而被删除),尽管我的SSL工作且会话已加密。< / p>

我希望配置中的一些东西很简单,因为我一直在盯着它看太多小时/天。

当我尝试从WcfTestService.exe或基本.net应用程序调用服务时,出现以下错误。

  

没有端点收听   https:// subdomain.domain.us:8091/SalesService/SalesService.svc   那可以接受这个消息。这是   通常由不正确的地址引起   或SOAP动作。请参阅InnerException,if   目前,了解更多详情。

     

服务器堆栈跟踪:
  at System.ServiceModel.Channels.HttpChannelUtilities.ProcessGetResponseWebException(WebException)   webException,HttpWebRequest请求,   HttpAbortReason abortReason)at   System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(时间跨度   超时)at   System.ServiceModel.Channels.RequestChannel.Request(消息消息,TimeSpan超时)at   System.ServiceModel.Dispatcher.RequestChannelBinder.Request(消息消息,TimeSpan超时)at   System.ServiceModel.Channels.ServiceChannel.Call(String action,Boolean oneways,   ProxyOperationRuntime操作,   Object [] ins,Object [] outs,TimeSpan   超时)at   System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage   methodCall,ProxyOperationRuntime   操作)   System.ServiceModel.Channels.ServiceChannelProxy.Invoke(即时聊天   消息)

     

在[0]处重新抛出异常:
  在   System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(即时聊天   reqMsg,IMessage retMsg)at   System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&安培;   msgData,Int32类型)at   IServiceRC.RestrictedProduct(字符串   line1)at   ServiceRCClient.RestrictedProduct(字符串   line1)

     

内部异常:遥控器   服务器返回错误:(404)不是   发现。在   System.Net.HttpWebRequest.GetResponse()   在   System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(时间跨度   超时)

这是我的web.config

<system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior name="SalesService.ServiceRCbehavior">
          <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
          <serviceMetadata httpsGetEnabled="true"/>
          <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <bindings>
      <basicHttpBinding>
        <binding name="ServiceRCbind" closeTimeout="00:01:00" openTimeout="00:01:00"
        receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false"
        bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
       maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
        messageEncoding="Text" textEncoding="utf-8"
        useDefaultWebProxy="true">
          <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
          maxBytesPerRead="4096" maxNameTableCharCount="16384" />
          <security mode="Transport">
            <transport clientCredentialType="None"/>
          </security>
        </binding>
      </basicHttpBinding>
    </bindings>
    <client>
      <endpoint address=""
    binding="basicHttpBinding" bindingConfiguration="ServiceRCbind"
    contract="SalesService.IServiceRC"/>
    </client>
    <services>
      <service behaviorConfiguration="SalesService.ServiceRCbehavior" name="SalesService.ServiceRC">
        <endpoint address="" listenUri="SalesService.svc" binding="basicHttpBinding" contract="SalesService.IServiceRC" bindingConfiguration="ServiceRCbind"/>
        <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange"/>
        <host>
          <baseAddresses>
            <add baseAddress="https://subdomain.domain.us:8091/SalesService/"/>
          </baseAddresses>
        </host>
      </service>
    </services>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true">
      <baseAddressPrefixFilters>
        <!--<add prefix="https://subdomain.domain.us:8091/SalesService/"/>-->
      </baseAddressPrefixFilters>
    </serviceHostingEnvironment>
  </system.serviceModel>

我考虑过的另一件事就是在以前链接的解决方案中使用自定义端点,但我不认为我的情况特别需要它,只会使事情变得复杂。

非常感谢任何输入/参考。

编辑:Here是指向IIS生成的wsdl文本的链接(仅编辑匿名域名)

0 个答案:

没有答案