【发布时间】:2013-04-19 07:14:15
【问题描述】:
我有一个托管在 IIS7.5 中的 WCF 4.5 服务。 该服务对 Net 3.5+ 客户端使用 netTcpBinding,对 Silverlight 5 客户端使用 basicHttpBinding。此绑定上的地址是特定的 (address="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
此 URL 被 IIS 拒绝并出现 404 错误。
这似乎是 IIS 问题而不是 WCF 问题。无论如何,我使用的是正确的 URL 吗?
任何帮助表示赞赏。
【问题讨论】: