1

我对 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”参数,我不太确定如何使用iis节点。谁能帮我吗?

4

2 回答 2

0

web.config处理程序路径应设置为应用程序的入口点,而不是node_modules\keystone\index.js. 如果您使用了 keystoneYoeman生成器,则入口点是keystone.js应用程序根文件夹中的文件。

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

    ...

  </system.webServer>
</configuration>
于 2014-08-07T16:06:40.183 回答
-1

我有更多关于如何在 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>
于 2015-08-17T20:07:25.863 回答