C# 要使IIS与web api 2一起工作,必须设置哪些IIS处理程序映射?

C# 要使IIS与web api 2一起工作,必须设置哪些IIS处理程序映射?,c#,asp.net,iis,C#,Asp.net,Iis,尝试使用IIS发布新记录时出现500错误 PUT有效,GET有效,只有POST导致500服务器错误 在Visual Studio中使用IISExpress时,我没有收到错误 这只是在我的本地IIS网络服务器只抛出 在许多情况下,处理程序映射都有一个它们将接受的谓词列表,默认情况下,其中许多都排除了POST谓词 我似乎很清楚这就是我的问题所在 我不想一个一个地猜 处理程序映射中一定有问题,但我不知道必须设置什么处理程序映射 这可以在我的应用程序web配置中而不是在配置IIS中完成吗 <mod

尝试使用IIS发布新记录时出现500错误

PUT有效,GET有效,只有POST导致500服务器错误

在Visual Studio中使用IISExpress时,我没有收到错误

这只是在我的本地IIS网络服务器只抛出

在许多情况下,处理程序映射都有一个它们将接受的谓词列表,默认情况下,其中许多都排除了POST谓词

我似乎很清楚这就是我的问题所在

我不想一个一个地猜

处理程序映射中一定有问题,但我不知道必须设置什么处理程序映射

这可以在我的应用程序web配置中而不是在配置IIS中完成吗

<modules runAllManagedModulesForAllRequests="true">
  <remove name="WebDAVModule"/>
</modules>

<handlers accessPolicy="Read, Script">
        <remove name="WebDAV" />
  <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
  <remove name="OPTIONSVerbHandler" />
  <remove name="TRACEVerbHandler" />
  <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
  <!--add name="WebDAV" path="*" verb="*" modules="WebDAVModule" resourceType="Unspecified" requireAccess="None" /-->
</handlers>

如何编辑或配置IIS以提供更多详细信息?

以下是Web Api 2.0的基本处理程序

<system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules runAllManagedModulesForAllRequests="true"/>
    <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>
另外,为了确定,您应该发布包含500个错误的异常消息。我相信你会发现一些更详细的东西

此外,您可能需要告诉IIS返回更详细的信息。您通常会通过将下面的条目添加到we.config的config部分来实现这一点

  <system.web>
    <customErrors mode="Off"/>
    <compilation debug="true"/>
  </system.web>

这可能与CORS有关。你检查过小提琴手的电话吗?我用过邮递员。唯一返回的错误是{消息:发生了错误。}事件查看器或IIS日志中是否有错误消息或状态代码的更多详细信息?完全没有。这似乎是一个标准响应,我知道没有帮助。是的,添加调试语句可以提供更多详细信息,谢谢。