0

我一直在研究在 VS 2008 中开发并在 Windows Server 2008、IIS 7.0 中托管的 WCF 服务,当我在本地环境中托管此服务时,它工作正常,但是当我在生产站点中托管此服务时它不工作。在此服务中,我使用 WShttpbinding 绑定,并且我使用的安全模式是消息,客户端凭据类型是“用户名”

 <security mode= "Message">
    <message clientCredentialType="UserName" />
</security>

在行为配置中,我正在使用

 <behavior name="name">
      <serviceMetadata  httpGetEnabled="true" httpsGetEnabled="true" httpsGetUrl="https://serviceurl/basic"/>                   
    <serviceDebug includeExceptionDetailInFaults="true" />
    <serviceCredentials>
    <serviceCertificate findValue="CN=WMSvc-AMAZONA-PJ1K606" />
    <userNameAuthentication userNamePasswordValidationMode="MembershipProvider" embershipProviderName="WCFSqlProvider" />
    </serviceCredentials>
    </behavior>

但是当我从客户端应用程序使用服务时,它给了我错误

没有通道在“//服务托管的机器名称/服务名称/$元数据”处主动侦听这通常是由不正确的地址 URI 引起的。确保将消息发送到的地址与服务正在侦听的地址相匹配。

4

2 回答 2

0

根据错误消息,您的问题似乎与元数据有关。

<serviceMetadata  httpGetEnabled="true" httpsGetEnabled="true" httpsGetUrl="//https://serviceurl/basic"/>         

尝试删除属性//开头的httpsGetUrl,它们可能会给您带来麻烦。

以下是一些配置示例:http: //msdn.microsoft.com/en-us/library/ms731317 (v=vs.110).aspx

于 2014-02-10T11:09:32.357 回答
0
<system.serviceModel>
    <bindings>
      <webHttpBinding>
        <binding name="TransportSecurity">
          <security mode="Transport">
            <transport clientCredentialType="None"/>
          </security>
        </binding>
      </webHttpBinding>
    </bindings>
    <services>
      <service name="Service" behaviorConfiguration="ServiceBehaviour">
        <endpoint address="" binding="webHttpBinding" behaviorConfiguration="webMyAcc" bindingConfiguration="TransportSecurity" contract="IService"/>
        <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange"/>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="ServiceBehaviour">
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="webMyAcc">
          <webHttp />
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
    <client />
  </system.serviceModel>
于 2017-09-26T09:31:17.920 回答