无法通过IIS中托管的多个绑定从服务获取wsdl

时间:2013-04-19 07:14:16

标签: wcf iis wsdl

我在IIS7.5中托管了WCF 4.5服务。 该服务使用netTcpBinding for Net 3.5+客户端和basicHttpBinding用于Silverlight 5客户端。此绑定的地址是特定的(地址=“SL”)。 ServiceMetadata“httpGetEnabled”设置为true。 现在我想从BIRT使用这个服务,所以我想获取一个wsdl文件。 我无法弄清楚要使用哪个URL,因为IIS拒绝了请求。

以下是配置文件的有趣部分:

<system.serviceModel>
<serviceHostingEnvironment>
  <serviceActivations>
    <add factory="My.CustomServiceHostFactory" relativeAddress="~/My.AdminService.svc" service="My.AdminService" />
  </serviceActivations>
</serviceHostingEnvironment>
<services>
  <service name="My.AdminService">
    <endpoint address="SL" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_SL"
     name="BasicHttpBinding_IAcadmin" contract="My.AdminService.IAcadmin" />
    <endpoint address="" binding="netTcpBinding" bindingConfiguration=""
     contract="My.AdminService.IAcadmin">
      <identity>
        <dns value="localhost" />
      </identity>
    </endpoint>
    <endpoint address="mex" binding="mexTcpBinding" bindingConfiguration=""
     contract="IMetadataExchange" />
  </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior name="">
      <serviceMetadata httpGetEnabled="true" httpGetUrl=""/>
      <serviceDebug includeExceptionDetailInFaults="true" />
    </behavior>
  </serviceBehaviors>
</behaviors>

该服务发布在以下网址:

http://localhost/My.AdminService

现在,如果我正确理解了事情,那么WSDL地址将是:

http://localhost/My.AdminService/My.AdminService.svc/SL/?wsdl

IIS拒绝此URL,但出现404错误。

这似乎是一个IIS问题而不是WCF问题。无论如何,我使用正确的URL吗?

任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

你试过http://localhost/My.AdminService/SL吗?这个文件夹存在吗?如果你把普通的HTML放在那里 - 你可以在浏览器中打开吗?