2

我无法让 iisnode 和 ghost 一起玩。

我可以很好地运行 iisnode 提供的示例,并且可以通过节点命令行启动 ghost 并正常运行。我已经关注了我可以找到的每篇在线博客文章,以便将它们设置在一起。令人沮丧的是博客让这个过程看起来非常简单。

从查看“ETW”日志看来,iisnode 无法使用命名管道与节点进程通信(“iisnode 计划重试命名管道连接到 node.exe 进程”x20+),然后节点进程终止。

问题可能不在于幽灵,我无法确定下一步该做什么或调整哪个部分。在这一点上我最好的猜测是某种权限问题,但我花了几个小时在我的开发机器上设置权限无济于事。

如果有帮助,我在浏览器中返回的错误消息是:错误:(代码:EACCES)启动服务器时出错。

4

2 回答 2

3

为了回答我自己的问题,我逐行检查了 node.exe 的进程监视器输出,看看是否能看到任何奇怪的东西。我不是分析 Process Monitor 输出的专家,并且有大量“缓冲区溢出”消息和其他可能是错误的东西,但后来我偶然发现了以下行:

Node.exe CreatePipe \MyProjects\WebsiteName\process.env.port\ INVALIDDEVICEREQUEST

设备无效?

然后一分钱终于掉了。在 config.js 中,您不想将端口设置为'process.env.port'(正如 config.js 文件本身作为注释所建议的那样),您希望将端口设置为process.env.port.

没有引号。

于 2016-01-25T08:11:40.040 回答
1

只是为了澄清ruethewhirl551 所说的,这是我工作“ 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”以获取更多信息。

于 2016-08-26T12:42:12.897 回答