前一篇文章介绍了如何用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
appcmd unlock config /section:httpErrors