我最近从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?
我很感激任何帮助,因为该网站应该今晚上线!
我有一个带有Delete方法的web api控制器.该方法在运行IIS Express(Windows 8)的本地计算机上执行正常,但只要我将其部署到实时IIS服务器(Windows Server 2008 R2),它就会停止工作并抛出以下错误消息:
HTTP错误405.0 - 不允许的方法由于使用了无效的方法(HTTP Verb),无法显示您要查找的页面
我在网上寻找解决方案,并实施了最合理的解决方案.我的网络配置包含以下设置:
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
我也试图在IIS中更改处理程序映射和请求筛选无济于事.请注意,IIS中的WebDAV创作规则似乎已被禁用.
任何想法将不胜感激谢谢.
我在PHP(5.2.9-1)应用程序中有一个表单导致IIS(Microsoft-IIS/6.0)在POST时抛出以下错误:
无法显示您要查找的页面,因为使用了无效的方法(HTTP谓词)来尝试访问.
这是一个HTTP 405状态代码.应用程序中的所有其他表单都有效,因此我认为PHP页面的IIS'动词'设置是正确的.
这是客户的服务器,我无权访问以验证设置或测试代码.我所能做的就是发送客户替换文件.IIS服务器上的其他客户没有此类问题.
表格非常简单:
<form method="post" action="index.php">
... fields ...
</form>
Run Code Online (Sandbox Code Playgroud)
什么可以导致IIS仅在一个表单上抛出该错误,但在其他表单上工作正常?
我们有一个ASP.NET Core 2.0网站,它还提供了一些用于UI增强目的的简单Web API方法.
在IIS Express下本地运行时,Web API调用按预期工作,但是当我们部署到IIS 8.5生产Web服务器时,在发出HTTP 和请求时会出现以下错误...DELETEPUT
405 Method Not Allowed
Run Code Online (Sandbox Code Playgroud)
经过一些网络搜索后,我们发现了几篇建议删除IIS WebDAV模块的帖子.我们在IIS中禁用了它(它是我们的服务器),我们也尝试了以下方法:
Allow verb filtering = FalseaspNetCore,WebDAV和ExtensionlessUrlHandler-Integrated-4.0上述步骤都没有解决我们的问题.
任何建议/方向将不胜感激.
我有一个用经典 asp 编写的项目,并且特定表单的提交由 Perl 脚本处理。
我要为这个项目做一个改进。我为 Windows 32 位安装了最新版本的 ActivePerl。
我看了看生产环境,看到在IIS 7.5,有一个关于“处理程序映射”的条目*.pl被处理C:\Perl\bin\PerlEx30.dll。所以我在开发环境上做了同样的事情。(请注意,Prod. 环境中没有“*.cgi”的映射)
现在,当我尝试提交其 action 所在的表单时,MyScript.pl出现以下错误:
HTTP Error 405.0 - Method Not Allowed
The page you are looking for cannot be displayed because an invalid method (HTTP verb) is being used.
Run Code Online (Sandbox Code Playgroud)
也许值得一提的是,我在 64 位环境中,我也尝试了 Windows 64 位的 ActivePerl(我映射*.pl到perl514.dll),但仍然遇到相同的错误!
iis ×4
asp.net ×2
activeperl ×1
asp.net-core ×1
asp.net-mvc ×1
iis-6 ×1
iis-7.5 ×1
iis-8 ×1
perl ×1
php ×1