Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net iisnode 401消息返回iis页面_Asp.net_Node.js_Express_Iis_Iisnode - Fatal编程技术网

Asp.net iisnode 401消息返回iis页面

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,这意味着将为来自运行网

我正在构建一个应用程序,我正在使用nodejs express为其提供rest api服务。 我使用iisnode模块在windows server 2012上托管了该应用程序。一切都很完美。 问题是,当我从节点应用程序返回404(未经授权)消息时,端点接收401 http状态,错误页面为iis。 有没有其他办法克服这个问题

这是我的网络配置文件

提前感谢

IIS正在掩盖错误的“详细信息”(您的json响应),因为默认情况下,错误设置为
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>