Put方法抛出500错误ASP.NET MVC 5

时间:2014-11-08 15:36:21

标签: c# asp.net asp.net-mvc http-put

我在我的网站上使用REST API之类的东西。我使用的是PUT方法。

[HttpPut]
 public ActionResult OrderChapter(ClientOrder order)

但它不是Web API,它是MVC控制器。起初我收到405错误(Method Not Allowed)。谷歌说我需要删除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的设置中这个方法是不允许的?

1 个答案:

答案 0 :(得分:0)

通常,错误代码#500与某些内部服务器错误有关,而且它也是官方定义。

用外行的话来说,PUT操作中的代码似乎有问题,快速调试PUT操作方法会给出问题的答案,可能是一些例外已被抛出,并由您的Web服务器(例如IIS)转换为500错误代码。