node.js - iis7 为 node.js 站点随机返回 404 not found 错误

标签 node.js iis iis-7 iisnode

服务器,位于德国
Windows 服务器 2008/IIS 7
Node .js 0.8.22
iisnode 0.2.2 x64

网络配置

<configuration>
  <system.webServer>
    <handlers>
      <add name="iisnode" path="server.js" verb="*" modules="iisnode" />
    </handlers>

    <rewrite>
      <rules>
        <rule name="DynamicContent">
          <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="True"/>
          </conditions>
          <action type="Rewrite" url="server.js"/>
        </rule>
      </rules>
    </rewrite>

    <iisnode watchedFiles="*.js;lib\*;node_modules\*;styles\*;ui\*;views\*" />

  </system.webServer>
</configuration>

服务器.js

var port = process.env.NODE_ENV == 'production' ? process.env.PORT : 3000;

require('./lib/server').listen(port);

Site Link

问题:
有时我会收到 200 响应,但有时会收到 404(找不到文件或目录)。

如果我从俄罗斯、德国或美国请求,响应是 200。
如果我确实从中国请求,有时响应是 404(取决于 ISP、时间和其他因素)。

404响应貌似iis找不到server.js

200 响应示例(使用快速 Vpn,连接到美国):

2013-04-29 02:42:58 W3SVC1 LOFT4002 188.138.16.31 GET /zazaza - 80 - 180.150.157.51 HTTP/1.1 Mozilla/5.0+(Windows+NT+6.2;+WOW64)+AppleWebKit/537.31+(KHTML,+like+Gecko)+Chrome/26.0.1410.64+Safari/537.31 connect.sid=s%3ABHin0EtiPcJbD6GCeXE2hb_1.mNHhYwIs%2BvLKcJcXc1igMH4O%2FIkuwQdygd1XjN7ediM - test.amelisa.ru 200 0 0 367 530 514

404 错误示例(没有 vpn,来自中国的请求):

2013-04-29 02:32:47 W3SVC1 LOFT4002 188.138.16.31 GET /zazaza - 80 - 112.90.90.18 HTTP/1.1 Mozilla/5.0+(Windows+NT+6.2;+WOW64)+AppleWebKit/537.31+(KHTML,+like+Gecko)+Chrome/26.0.1410.64+Safari/537.31 connect.sid=s%3AdL_RALh0qLd0eLoCxZUk6Po-.N9h97BMFy9%2Fm9tl8lrQd%2FIHQjwpwzEXfWC7f4%2FrHxpY - test.amelisa.ru 404 0 0 1390 532 436

iisnode 没有日志,也没有跟踪 404 请求,所以我认为它们甚至都没有启动。

此服务器上的所有 iisnode/node.js 站点都存在同样的问题。
但是本服务器上的Asp Net Mvc 网站无论如何返回200,所以这可能不是中国金盾问题。

我可以提供任何信息。
任何帮助将不胜感激。

最佳答案

尝试创建通往您的解决方案的路径以进行测试,例如:

//my route to test "GET", make sure if your route is "POST"
app.get('/test', function(req, res){
     res.json(true);
});

现在使用url进行测试: http://test.amelisa.ru/test

当没有通往该路径的路由时,会发生此错误。我遇到了同样的问题并已解决。

希望对你有所帮助。如果没有,请在“./lib/server”中分享您的代码以提供更多帮助。

关于node.js - iis7 为 node.js 站点随机返回 404 not found 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16271190/

相关文章:

c# - DELETE/PUT 动词导致 404 Not Found in WebAPI,仅当在本地运行时

javascript - 为什么我的 cipher.final 因 key 不正确而失败?

javascript - Node.js 中的函数

javascript - NodeJS : Send message to persistent child process's stdin without human interaction?

iis - IIS 7 上的负载均衡网站

asp.net - ASP.NET 和 SQL Server 2008 中的错误 "Login failed for user ' NT AUTHORITY\IUSR'"

c# - IIS 7 上的 nHibernate,SQLClientPermissionException

node.js - NodeJS从 session 中删除变量

ASP.NET 不显示 CSS 或 JS 在 VS2013 中有效,但在 IIS 7.5 中无效

asp.net - 哪个用户运行我的 asp.net 用户?