405将MVC 4应用程序和WCF服务移动到IIS 8时出错



以前MVC 4应用程序托管在windows 2003服务器asp.net 4.0.30319中WCF服务也托管在那里
匿名访问与IUSR_帐户一起检查以及"集成Windows身份验证"复选框。

现在将网站和服务同时迁移到Windows 2012 Server(IIS 8)点击Web服务效果良好:

http://exampleservicetest.test.com/Service.svc?wsdl

问题:调出调用该服务的网站会返回下面的405错误。篡改谷歌设置并不能解决这个问题。。。。

错误。

An error occurred while processing your request.
ProtocolException
System.ServiceModel.ProtocolException: The remote server returned an unexpected      response: (405) Method Not Allowed. ---> System.Net.WebException: The remote server    returned an error: (405) Method Not Allowed.
at System.Net.HttpWebRequest.GetResponse()
at System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
--- End of inner exception stack trace ---

看起来这是一个常见的配置问题。这是一个HTTP传输状态错误,通常意味着您试图使用web服务器不支持的HTTP方法发出HTTP请求。也就是说,你需要看看你的网站是如何请求这项服务的,它使用的是什么http方法。。。GETPOSTPUTDELETEHEAD等。并确定您的web服务器是否支持此方法。

常见原因有:

  1. 服务公开的web方法不支持此Http方法。这不是你的情况
  2. 您已安装WebDav Publishing,并且已为您的网站启用它
    • 如果您需要WebDav,请检查您的设置以启用本博客文章中所述的所需权限(注意,它与IIS7.5有关,但您可以在IIS网站上找到一些关于如何在IIS8中执行相同操作的文档)
    • 如果禁用WebDav,则可能还需要禁用web.config文件中的相关模块和处理程序
  3. 如果您使用的是无扩展名的RESTURL,并且使用的是PUTDELETE方法,那么您可能需要通过修改Extensionless-Url处理程序元素的verb属性来配置applicationhost.config文件以支持这些http方法。

    <add name="ExtensionlessUrl-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />

是web.config的路径中没有完整的service.svc。。。。

最新更新