我在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吗?
任何帮助表示赞赏。
答案 0 :(得分:0)
你试过http://localhost/My.AdminService/SL
吗?这个文件夹存在吗?如果你把普通的HTML放在那里 - 你可以在浏览器中打开吗?