我正在尝试使用IIS 7.5托管ASP.NET MVC4 Web应用程序.当调试应用程序一切正常(我假设这是因为
Windows身份验证).
但是,当我发布应用程序并浏览它,我得到一个405方法不允许的错误:
但是,当我发布应用程序并浏览它,我得到一个405方法不允许的错误:
POST http://localhost/ 405 (Method Not Allowed) send i.extend.ajax i.(anonymous function) (anonymous function)
从我一直在读的这是一个IIS中的“处理程序映射”的问题,或者web.config中需要一些配置.无论哪种方式,我没有找到正确的解决方案.
任何人都可以告诉我我的web.config应该包含在所有POSTS中?和/或如何在IIS中设置正确的处理程序映射,因为我是Web开发的新手,并且找到了一些压倒性的选项数量.
引发错误的JavaScript片段如下:
$.post("/",{ latitude: locLat,longitude: locLon,username: $('#onlineUsers').attr('itemid') });
解决方法
当请求HTTP动词(GET,PUT,POST,DELETE,HEAD等)并且被指定的处理程序不支持/不允许时,IIS会抛出405.
您需要打开IIS管理器 – >默认网站 – >处理程序映射(或特定于Web应用程序的处理程序映射)
在这里,您需要使用处理程序映射,因为其中一个不允许使用“POST”动词.
由于您不会发布到任何特定页面(.aspx,.ashx等),因此很难确定导致您出现问题的确切处理程序.
感兴趣的处理者可能是:
> ExtensionlessUrlHandler-ISAPI-4.0_32bit / 64bit
> StaticFile
一旦您确定您的请求正在路由到的处理程序,双击它打开对话框.
从那里点击“请求限制”,然后“动词”
确保文本区域中存在适当的动词.
如前所述,我不确定哪个处理程序正在处理您的请求,因为您不会发布到任何特定页面(您可能需要适当地路由您的请求的URL重写).
如果上述失败,您可能需要检查WebDAV发布是否已安装并将其删除(需要重新启动).