尝试使用IIS发布新记录时出现500错误。
PUT工作,GET工作,只有POST导致500服务器错误。
在Visual Studio中使用IISExpress时,我不会收到错误。
这只会抛出我本地的IIS Web服务器。
在许多情况下,处理程序映射都有一个他们将接受的VERBS列表,默认情况下,其中很多都排除了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以向我提供更多详细信息?
答案 0 :(得分:0)
以下是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的配置部分。
<system.web>
<customErrors mode="Off"/>
<compilation debug="true"/>
</system.web>