0

我们有一个带有 OpenRasta 的 Asp.Net 应用程序,当我们将它部署在我们的大多数 IISes (7.5) 上时,它工作正常。但是,在一个安装中,对于 PUT 请求,客户端会收到“405 Method not allowed”错误,并且日志会显示如下条目:

2011-11-15 01:18:20 192.168.0.164 PUT /myapp/ignoreme.rastahook - 80 - 192.168.0.131 AClient 405 0 0 57

ignoreme.rastahook似乎来自 OpenRasta 在 OpenRastaModule.cs 中的重写:

HttpContext.Current.RewritePath(VirtualPathUtility.ToAppRelative("~/ignoreme.rastahook"), false);

虽然 GET 和 POST 工作正常,但不确定 HTTP 方法是否真的是造成差异的原因。关于可能发生的事情或从哪里开始调试的任何想法?我目前的猜测是工作服务器和不工作的服务器之间存在一些 IIS 配置差异。

OpenRasta 版本是 2.0.3,我们在 .net 4 上运行该应用程序。

更新: Fwiw,当在我的服务器的 web.config 中将 OpenRasta 处理程序映射的动词属性从“*”更改为“GET,POST”时,我在日志文件中也得到了一个“ignoreme.rastahook” PUT,但带有 404,而不是 405,因此这似乎与上述问题不同。

更新 2 我想当我启用 WebDAV 时,我可以重现 405 / ignoreme.rastahook 问题。这导致我访问https://github.com/openrasta/openrasta-stable/wiki/Installing-OpenRasta-Under-IIS,它指出

请注意,WebDAV 模块可能会导致 IIS 7.5 出现问题

更新 3 我验证了WebDAV 是导致其他服务器出现问题的原因,但如果有人知道如何在不完全禁用 WebDAV 的情况下解决问题,我将不胜感激。

4

1 回答 1

1

如您所见,问题来自 WebDAV。没有任何方法可以让我找到在您的 web.config 中添加条目以禁用 webdav 的栏。

这已添加到相关的 wiki 页面中。

于 2012-02-10T16:29:00.193 回答