在 POST 中获取错误 405,在 GET 中获取 404

Posted

技术标签:

【中文标题】在 POST 中获取错误 405,在 GET 中获取 404【英文标题】:Getting Error 405 in POST and 404 in GET 【发布时间】:2013-04-21 00:18:29 【问题描述】:

我有一个在开发环境中工作的 MVC4 WebApi 项目,但在部署到生产环境时出错。 执行 POST 时出现 httperror 405,执行 GET 时出现 404 错误。我知道问题是我的路线由错误的模块提供服务,但无法找出问题所在。

这是 POST 的失败请求日志

ModuleName DirectoryListingModule 
Notification 128 
HttpStatus 405 
HttpReason Method Not Allowed 
HttpSubStatus 0 
ErrorCode 2147942401 
ConfigExceptionInfo 
Notification EXECUTE_REQUEST_HANDLER
ErrorCode Incorrect function. (0x80070001)

这是 GET 的失败请求日志

ModuleName IIS Web Core 
Notification 16 
HttpStatus 404 
HttpReason Not Found 
HttpSubStatus 0 
ErrorCode 2147942402 
ConfigExceptionInfo
Notification MAP_REQUEST_HANDLER
ErrorCode The system cannot find the file specified. (0x80070002)

我在板上尝试了许多解决方案,但没有一个能解决我的问题。 我的环境是Server 2008 R2,IIS7,我重新安装了.Net 4.0 framework,MVC 4。没有安装WEBDAV,我在web.config中有。 我已确保 appPool 在 .net 4.0 下以集成模式运行我还确保已安装所有 Windows 更新。

知道我还能尝试什么吗?非常感谢。

【问题讨论】:

我原来的帖子有问题。我在 web.config 中运行了AllManagedModulesForAllRequests="true" 我通过更改控制器中的 POST 操作以接受具有适当参数作为属性而不是值类型作为方法参数的复杂对象来解决此问题。 【参考方案1】:

我曾经遇到过类似的问题,但是当我们将 appPool 更改为在经典模式下运行时,它得到了解决。

这与您的问题不完全相同,因为我们没有尝试 POST,但我们在执行 GET 时确实遇到了 404 错误。

【讨论】:

【参考方案2】:

User words-like-jared 在他的评论中提供了为我解决这个问题的答案。这个问题给我带来了数小时的痛苦并尝试了其他几个死胡同。为了帮助其他人轻松找到此解决方案,我添加了此答案,以免略读者忽略它。

【讨论】:

以上是关于在 POST 中获取错误 405,在 GET 中获取 404的主要内容,如果未能解决你的问题,请参考以下文章

get请求400错误,post请求405错误

AngularJS $http.POST 方法 405 错误

jQuery .ajax() POST 请求抛出 405(不允许的方法)但 GET 不会

cURL 未获取预期的 POST 响应 - 错误 405

Angular 7:发送 post 请求给出错误 405(不允许的方法)

Laravel 5.4 错误 405 方法不允许错误