我遇到了让iisnode和ghost一起玩的问题。
我可以运行iisnode提供的样本,我可以通过节点命令行启动并运行正常。我已经关注了在线写的每篇博文,我可以找到它们将它们组合在一起。令人沮丧的是博客让这个过程看起来非常简单。
通过查看“ETW”日志,看起来iisnode无法使用命名管道与节点进程通信(“iisnode计划重试命名管道连接到node.exe进程”x20 +),然后节点进程终止。
问题可能不在于幽灵,我不知道该做什么或接下来调整哪个部分。我在这一点上最好的猜测是某种权限问题,但我花了几个小时在我的开发机器上设置权限都无济于事。
如果有帮助,我在浏览器中收到的错误消息是:错误:(代码:EACCES)启动服务器时出错。
答案 0 :(得分:3)
为了回答我自己的问题,我逐行检查了node.exe的进程监视器输出,看看我是否能看到任何奇怪的内容。我不是分析Process Monitor输出的专家,而且有大量的“缓冲区溢出”消息以及其他可能错误的东西,但后来我偶然发现了以下几行: / p>
Node.exe CreatePipe \MyProjects\WebsiteName\process.env.port\ INVALIDDEVICEREQUEST
设备无效?
然后便士终于放弃了。在config.js中,您不希望将端口设置为'process.env.port'
(如config.js文件中建议的那样作为注释),您希望将端口设置为process.env.port
。
没有引号。
答案 1 :(得分:1)
只是为了澄清what ruethewhirl551 said,这是我的工作“ config.js ”的摘录:
config = {
production: {
url: 'http://my-blog.com',
mail: {
transport: 'SMTP',
options: {
service: 'Mailgun',
auth: {
user: 'postmaster@my-blog.com',
pass: '9ed512da012cd454376947365xd71793'
}
}
},
database: {
client: 'sqlite3',
connection: {
filename: path.join(__dirname, '/content/data/ghost.db')
},
debug: false
},
server: {
host: '127.0.0.1',
port: process.env.PORT // <-- HERE
}
},
// ...
请注意底部的port: process.env.PORT
行。
您还可以通过“config.example.js”文件搜索“iisnode”以获取更多信息。