Asp.net iisnode 401消息返回iis页面
我正在构建一个应用程序,我正在使用nodejs express为其提供rest api服务。 我使用iisnode模块在windows server 2012上托管了该应用程序。一切都很完美。 问题是,当我从节点应用程序返回404(未经授权)消息时,端点接收401 http状态,错误页面为iis。 有没有其他办法克服这个问题 这是我的网络配置文件 提前感谢IIS正在掩盖错误的“详细信息”(您的json响应),因为默认情况下,错误设置为Asp.net iisnode 401消息返回iis页面,asp.net,node.js,express,iis,iisnode,Asp.net,Node.js,Express,Iis,Iisnode,我正在构建一个应用程序,我正在使用nodejs express为其提供rest api服务。 我使用iisnode模块在windows server 2012上托管了该应用程序。一切都很完美。 问题是,当我从节点应用程序返回404(未经授权)消息时,端点接收401 http状态,错误页面为iis。 有没有其他办法克服这个问题 这是我的网络配置文件 提前感谢IIS正在掩盖错误的“详细信息”(您的json响应),因为默认情况下,错误设置为DetailedLocalOnly,这意味着将为来自运行网
DetailedLocalOnly
,这意味着将为来自运行网站的计算机的请求显示错误详细信息,但为任何外部请求显示该错误代码的通用IIS错误页面
改为将401错误设置为Detailed
,应该允许您通过以下方式进行json响应:
<configuration>
<system.webServer>
<httpErrors errorMode="DetailedLocalOnly">
<remove statusCode="401" />
<error statusCode="401" errorMode="Detailed"/>
</httpErrors>
</system.webServer>
</configuration>
有关详细信息,请参阅。使用IIS,如果您希望直接将错误从节点应用程序返回给请求者,而无需IIS使用默认错误页面拦截错误,请使用
元素,并将existingResponse
属性设置为PassThrough
<configuration>
<system.webServer>
<httpErrors existingResponse="PassThrough" />
</system.webServer>
</configuration>
你好,汤姆。谢谢你的支持。我尝试了上面的方法。但是我遇到了内部服务器错误。嗯,我目前无法访问我的iis服务器。我从我链接的文档页面中改编了这个例子,所以也许可以通读一下
<configuration>
<system.webServer>
<httpErrors errorMode="DetailedLocalOnly">
<remove statusCode="401" />
<error statusCode="401" errorMode="Detailed"/>
</httpErrors>
</system.webServer>
</configuration>
<configuration>
<system.webServer>
<httpErrors existingResponse="PassThrough" />
</system.webServer>
</configuration>