Manny
Manny

Reputation: 190

Running Keystone.js with IISnode

I'm fairly new to both Keystone and IISnode so bear with me. I've succesfully been able to run express projects with IISnode and I can run keystone.js projects with node but merging the two has been difficult. When I run the ETW traces alongside I get a "iisnode scheduled a retry of a named pipe connection to the node.exe process" multiple times before I shut it down. I've tried hooking iisnode directly to the keystone index.js file (see below from the web.config) and also to the keystone.js file at the root of the project.

<handlers>
  <add name="iisnode" path="node_modules/keystone/index.js" verb="*" modules="iisnode" />
</handlers>

My hunch is that I need to hook it up to the keystone.js file as you normally do to start up the project but you typically need to add a 'keystone' parameter alongside which I'm not quite sure how I can do this with iisnode. Can anyone help me out?

Upvotes: 1

Views: 531

Answers (2)

user2650480
user2650480

Reputation: 489

I have more detail instruction of how to setup keystone.js at IIS. 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>

Upvotes: -1

JME
JME

Reputation: 3642

The web.config handler path should be set to your application's entry point, and not node_modules\keystone\index.js. If you used the keystone Yoeman generator, the entry point is the keystone.js file in the root folder of your app.

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

    ...

  </system.webServer>
</configuration>

Upvotes: 0

Related Questions