IIS7.5에서 호스팅되는 WCF 4.5 서비스가 있습니다. 서비스에서 Net 3.5 이상 클라이언트의 경우 netTcpBinding을 사용하고 Silverlight 5 클라이언트의 경우 basicHttpBinding을 사용합니다. 이 바인딩의 주소는 구체적입니다 (address = "SL"). ServiceMetadata "httpGetEnabled"가 true로 설정됩니다. 이제 BIRT에서이 서비스를 사용하고 싶습니다. 그래서 wsdl 파일을 얻으려고합니다. IIS가 요청을 거부하기 때문에 어떤 URL을 사용해야하는지 알 수 없습니다. 다음 IIS에서 호스팅되는 다중 바인딩이있는 서비스에서 wsdl을 가져올 수 없습니다.
구성 파일의 인터 휴식 부분 :<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>
서비스는 다음 URL에 게시 : 내가 제대로 일을 이해하고있어 경우,
http://localhost/My.AdminService
지금 WSDL 주소는 다음과 같습니다.
http://localhost/My.AdminService/My.AdminService.svc/SL/?wsdl
이 URL은 IIS에서 404 오류로 거부됩니다.
이것은 IIS 문제가 아닌 것 같습니다. 어쨌든 올바른 URL을 사용하고 있습니까?
감사합니다.
예 시도해 보니 오류 404.0이 반환됩니다. 폴더가 존재하지 않습니다. 파일을 만들고 파일을 넣으면 브라우저에서 열 수 있습니다. http : //localhost/My.AdminService/My.AdminService.svc에 대한 WCF 호출이 성공합니다. –
@omatrot : 문제가 무엇인지 알아 냈습니까? 나는 같은 문제가있다 – David
@ David : 불행히도, 아니. –