我在我的网站上使用了类似REST API的东西。我正在使用PUT方法。Put方法抛出500错误ASP.NET MVC 5
[HttpPut]
public ActionResult OrderChapter(ClientOrder order)
但它不是Web API,它是MVC控制器。起初我收到405错误(方法不允许)。谷歌说我需要删除WebDAVModule
<system.webServer>
<modules>
<remove name="WebDAVModule" />
</modules>
在此之后,我有一个500错误。这不是我的代码。添加这个没有改变:
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE" type="System.Web.Handlers.TransferRequestHandler" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
我的主机说,PUT,PATCH和DELETE方法没有明确禁止。
怎么了?也许在IIS的设置中不允许使用这种方法?
一切都适用于发布吗?放置可能有问题。例如,angularjs不允许放置物体。只有参数,所以操作可能无法正确解决。 – 2014-11-08 15:45:40
是的,它适用于发布。我使用jQuery.ajax。所以,似乎我应该使用后而不是放? – Thor 2014-11-08 16:14:01
使用Fiddler并检查PUT请求是否包含正文中的有效内容。如果是,您可以切换到POST或使用查询字符串参数代替正文。 – 2014-11-08 16:34:02