最小的azure node.jsconfiguration服务.js文件作为纯文本,而不是处理它们

我想configurationazure“网站”服务来使用我自己的web.config (更好的日志控制)。 我在我的git部署node.js项目的根目录下创build了一个简单的web.config

 <?xml version="1.0" encoding="utf-8"?> <configuration> <system.webServer> <handlers> <add name="iisnode" path="src\server.js" verb="*" modules="iisnode"/> </handlers> </system.webServer> </configuration> 

我部署和访问azure色的网站后,它显示了src\server.js内容,而不是作为iisnode应用程序处理:(我知道这是一些愚蠢的错误,但谷歌search出奇怪的痛苦 – 所有我的search拼写为“纯文本“被无数”如何通过iisnode服务器静态内容“排斥:(而且从头学习所有iis / iisnode / web.config机器对于我的简单任务来说有点矫枉过正。任何提示要添加到这个web.config所以iis会处理server.js作为iisnode脚本,而不是一个纯文本?

更新

检查通过azure向导创build的node.js存储库,我发现只有当server.js位于src子目录时才会出现问题。 如果它位于根目录中,所有工作正常。 任何暗示为什么这样的行为iisnode ? 我想要subdirs :(。任何文件,他们不被允许?

我相信你需要添加一个rewrite规则到你的web.config 。 IISNode模块依靠IIS URL重写模块将请求路由到您的NodeJS应用程序。

 <rewrite> <rules> <rule name="iisnode"> <match url="src/*" /> <action type="Rewrite" url="server.js" /> </rule> </rules> </rewrite> 

来源

  • 在IIS中使用iisnode托pipeexpress node.js应用程序
  • 在Windows Azure上启用Node.js服务器端应用程序