我最近从Visual Studio 2010升级到Visual Studio 2012 RC.安装程序还会安装IIS 8 Express,Visual Studio现在将其用作默认Web服务器.
IIS 8阻止了我使用PUT AND DELETE谓词的WEB API请求.IIS返回405错误,The requested resource does not support http method 'PUT'.
我知道过去人们对此有疑问,Stack Overflow上有几条关于它的消息.使用IIS 7 Express,解决方案是卸载WebDav.不幸的是,我没有看到任何与IIS 8相关的方法.
我已经尝试从applicationhost.config编辑出WebDav部分,但这没有帮助.例如,我<add name="WebDAVModule" image="%IIS_BIN%\webdav.dll" />从配置文件中删除了.
我花了很长时间才研究这个问题.必须有一种简单的方法来启用PUT和DELETE?
我使用ASP.NET Web API编写了REST服务.我正在尝试发送HttpDelete请求,但是我收到以下错误:
405 - 不允许用于访问此页面的HTTP动词
我认为我接近解决方案,我发现我应该启用IIS远程管理,转到Handler Mappings部分并将DELETE动词添加到适当的位置......但问题是有很多不同的位置列表......(就像这里:http://www.somacon.com/p126.php).
我应该编辑哪一个?其中很少没有扩展,例如"ExtensionUrlHandler-Integrated-4.0",我添加了DELETE动词,但它仍然不起作用......
修改那个只是在黑暗中拍摄,所以我应该修改不同的位置吗?如果是这样,哪一个?或者还有什么我应该做的?
相同的Web服务在我的本地服务上工作得很好,所以我猜问题是远程IIS ...
问候
我编写了一个使用ASP.NET MVC Web API的站点,一切都运行良好,直到我把它放在登台服务器上.该站点在我的本地计算机和开发Web服务器上运行良好.开发和登台服务器都是Windows Server 2008 R2.
问题是:基本上网站工作,但有一些API调用使用HTTP PUT方法.这些失败在分段返回404,但在其他地方工作正常.
我遇到并修复的第一个问题是请求过滤.但仍然得到404.
我在IIS中打开了跟踪并遇到以下问题.
168. -MODULE_SET_RESPONSE_ERROR_STATUS
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)
Run Code Online (Sandbox Code Playgroud)
开发和分期时的配置是相同的,事实上整个站点是直接副本.
为什么GET和POST工作,而不是PUT?
使用Windows 2008 Server IIS 时,我遇到500-内部服务器错误PUT/DELETE。我得到的答复是:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<title>500 - Internal server error.</title>
<style type="text/css">
<!--
Formatting
-->
</style>
</head>
<body>
<div id="header"><h1>Server Error</h1></div>
<div id="content">
<div class="content-container"><fieldset>
<h2>500 - Internal server error.</h2>
<h3>There is a problem with the resource you are looking for, and it cannot be displayed.</h3>
</fieldset></div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
当我查看我的WebAPI的自定义日志时,我发现该呼叫甚至没有打到该服务。
我以往的经验是越来越404 -找不到了PUT和DELETE而这种行为是跨越的Win7和Win 2008服务器是一致的。为此,我找到了此修复程序:
我应用了此修复程序,并PUT/DELETE在Windows 7上运行。但是在那之后,当在win2008服务器的IIS 7上部署相同的服务时,我没有得到400。但是我从IIS或什至之前得到了“ 500-Internal Server Error” …
我正在使用Asp.net MVC 4 Web Api项目.我的应用程序使用mvc来实现一个网站.它向web api发出http请求以实现服务器功能.
对控制器的常规页面请求工作正常,并且能够显示网页.该应用程序能够向api 发送get和post请求.但是当它试图放入或删除它获得的Web请求时
"无法加载资源:服务器响应状态为501(未实现)"
该应用程序托管在iis 6上.
该应用程序在运行本地cassani服务器实例时工作,并且能够发出put和delete请求,但是一旦从iis执行应用程序,它就无法按预期工作.