我对Keystone和IISnode都是新手,所以请耐心听我说。我已经成功地用IISnode运行了express项目,我也可以用node运行keystone.js项目,但将两者合并起来一直很困难。当我同时运行ETW跟踪时,在我关闭它之前,我得到了多次"iisnode计划重试到node.exe进程的命名管道连接“。我尝试将iisnode直接挂接到keystone index.js文件(参见下面的web.config)和项目根目录下的keystone.js文件。
<handlers>
<add name="iisnode" path="node_modules/keystone/index.js" verb="*" modules="iisnode" />
</handlers>我的直觉是我需要像你通常做的那样将它连接到keystone.js文件来启动项目,但你通常需要添加一个'keystone‘参数,我不太确定如何使用iisnode来做到这一点。有人能帮我吗?
发布于 2014-08-08 00:06:40
应该将web.config处理程序路径设置为应用程序的入口点,而不是node_modules\keystone\index.js。如果您使用的是keystone Yoeman生成器,则入口点是应用程序根文件夹中的keystone.js文件。
<configuration>
<system.webServer>
<handlers>
<add name="iisnode" path="keystone.js" verb="*" modules="iisnode" />
</handlers>
...
</system.webServer>
</configuration>发布于 2015-08-18 04:07:26
关于如何在IIS中设置keystone.js,我有更详细的说明。http://www.dakehe.info/blog/post/deploy-keystonejs-node-cms-at-iis
<configuration>
<system.webServer>
<handlers>
<add name="iisnode" path="keystone.js" verb="*" modules="iisnode" />
</handlers>
<defaultDocument enabled="true">
<files>
<add value="keystone.js" />
</files>
</defaultDocument>
<rewrite>
<rules>
<rule name="Catch All">
<match url="/*" />
<conditions>
<add input="{PATH_INFO}" pattern=".+\.js\/debug\/?" negate="true" />
</conditions>
<action type="Rewrite" url="keystone.js" />
</rule>
</rules>
</rewrite>
<directoryBrowse enabled="false" />
<iisnode node_env="production" loggingEnabled="true" debuggingEnabled="true" devErrorsEnabled="true" />
</system.webServer>
</configuration>https://stackoverflow.com/questions/23574753
复制相似问题