【问题标题】:405 Error upon moving MVC 4 application and WCF service to IIS 8将 MVC 4 应用程序和 WCF 服务移动到 IIS 8 时出现 405 错误
【发布时间】:2014-01-07 23:46:08
【问题描述】:

以前 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 ---

【问题讨论】:

  • 你检查过应用程序池.net框架吗?
  • web 应用和服务都在自己的应用池中运行,都是 Integrated Pipeline 和 v4.0
  • 如果站点在同一个 IIS 服务器上,使用最新版本的 IIS 是否可能需要 web.config 中的跨域策略? stackoverflow.com/questions/5686059/…

标签: asp.net-mvc wcf windows-server-2012 iis-8


【解决方案1】:

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

常见原因有:

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

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

【讨论】:

  • 这些东西已经在 2003 年的服务器上工作了,没有使用 REST,也没有使用 WebDav。这只是一个权限问题,特定于一个 IIS 网站与同一 IIS 服务器上的另一个网站进行通信不知何故目前无法
  • 好的,这正是我建议这是配置问题的原因。但是,如果您想获得更准确的回复,最好更新您的答案以显示您的服务是如何配置的以及网站如何访问您的网络服务
【解决方案2】:

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

【讨论】:

  • Maras:这个答案是 by 问题的作者。您可能想查看您的评论...
  • 不过,如果作者或其他人可以解释这意味着什么,那就太好了,真诚地,每个人都会永远找到这个问题......
  • 我无权访问该代码。但它是 web.config 中服务的混乱 url
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-16
  • 2012-03-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多