我有以下WCF:
[OperationContract]
IList<OperationRoomDto> GetOperationRooms();
我有一个使用此WCF的网站,当我使用Visual Studio(Asp.Net开发服务器)时,它工作正常,但是当我将WCF部署到IIS时,我得到了这个例外:
远程服务器返回错误:(405)Method Not Allowed。
我创建了一个简单的网站来测试这个WCF(在IIS上)并且它有效。
这是网站web.config文件的一部分:
<endpoint address="http://server/WcfService"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IMessageService"
contract="MyProject.Web.Wcf.IMessageService" name="BasicHttpBinding_IMessageService">
</endpoint>
和Web服务配置文件的这一部分:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true" />
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
我尝试调试w3wp.exe服务以获取任何隐藏异常,我在Web服务方法上设置了一个断点,但调试器甚至没有到达那里,并且在到达Web服务类之前发生了异常
答案 0 :(得分:11)
我弄清楚了问题,原因是因为wcf的url不正确,它错过了服务文件名
<endpoint address="http://server/WcfService"
应该成为:
<endpoint address="http://server/WcfService/Service.svc"