前一篇文章介绍了如何用iis来伺服node网站(开发期间特别有用),结果还落掉一点,我们用node来做restful服务的时候,很多时候可能要响应500系列的状态码,并不是整个系统从头到尾都是200,靠返回一个result code来搞定。这在用node伺服的情况下毫无问题,比如:

res.send(500,"username invalid"); //express

前台正常接到“username invalid”的响应和500的状态码,可是一用iis,却跳出了它的出错页,这种情况,本来在c#开发,指定一句:

Response.TrySkipIisCustomErrors = true;

就可以了,但是node下显然只能从唯一的入口web.config着手了,一番搜索:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<httpErrors existingResponse="PassThrough" />
</system.webServer>
</configuration>

我的是在server2008下,也就是说iis7,可行。

stack overflow下有些人说7.5下貌似不行,我懒得试了,现在iis8都有了,还是自己真碰到不行的时候再解决吧~~~

当然,我还是可以备份一个解决方案下来,以备不时之需

cd C:\Windows\System32\inetsrv
appcmd unlock config /section:httpErrors
05-02 04:48