2016-05-06 79 views
0

我试图在Azure Web App中运行AtlasBoard,但无法使其工作。我使用“30秒内开始”步骤创建了一块新电路板,当我在本地启动时,演示板运行良好。它可以通过atlasboard start 3333开始,或者我运行node start使用iisnode在Azure Web App上运行AtlasBoard

我已将node_modules目录添加到.gitignore。

我在Azure上使用git部署,这似乎工作正常。部署日志还显示npm模块已安装。

这是从部署的最后输出中:

Using start-up script start.js from package.json. 
Generated web.config. 
The iisnode.yml file explicitly sets nodeProcessCommandLine. Automatic node.js version selection is turned off. 
Selected npm version 3.5.1 
npm WARN Invalid name: "HRMTS AtlasBoard" 
npm WARN wwwroot No description 
npm WARN wwwroot No repository field. 
npm WARN wwwroot No README data 
npm WARN wwwroot No license field. 
Finished successfully. 

然而,应用程序doesn't似乎开始,当我看在控制台捻日志消息,我得到这个:

Error: error installing D:\home\site\wwwroot\packages\demo 
    at process.<anonymous> (D:\Program Files (x86)\iisnode\interceptor.js:73:106) 
    at emitOne (events.js:96:13) 
    at process.emit (events.js:188:7) 
    at process._fatalException (node.js:267:26) 

有没有人有关于这里有什么问题的线索?

回答

0

如果您正在使用https://bitbucket.org/atlassian/atlasboard/src上的演示应用程序的回购来测试Azure,那么我们需要做一些额外的修改才能使测试在Azure Web Apps上运行。

首先,假设您已成功将应用程序部署到Azure,并且在开始运行应用程序时失败。然后,您可以利用Kudu控制台站点或Visual Studio Online扩展(请参阅How to install composer on app service?关于如何启用Azure Web Apps扩展的答案)来检查错误日志D:\home\site\wwwroot\packages\demo\npm-debug.log

有类似的错误:

155 error node -v v0.6.20

156 error npm -v 1.1.37

157 error message SSL Error: CERT_UNTRUSTED

看来,atlasboard与运行在Azure上非常低的节点version命令。我们可以手动修改相关脚本来绕过错误。

如果在部署过程中出现错误,你应该修改NPM版本package.json部署之前,例如:

"engines": { 
    "npm": ">2.0.0", 
    "node": ">=0.10" 
    }, 

部署后:

  • 检查,并在start.js修改port在根目录下:

    atlasboard({port: process.env.port||3000 , install: true}, 
    function (err) { 
        if (err) { 
        throw err; 
        } 
    }); 
    
  • 修改install功能D:\home\site\wwwroot\node_modules\atlasboard\lib\package-dependency-manager.js使用更高的NPM版本,并移除--production PARAM,e.g:

    ... 
    var npmCommand = isWindows ? "D:\\Program Files (x86)\\npm\\3.5.1\\npm.cmd" : "npm"; 
    executeCommand(npmCommand, ["install", pathPackageJson], function(err,  code){ 
    ... 
    }) 
    

然后,重新启动您的网站。

任何进一步的关注,请随时让我知道。

+0

将process.env.ATLASBOARD_PORT更改为process.env.PORT并在package-dependency-manager.js中进行修改对我来说是个窍门。谢谢! – henningst

+0

我写了一篇关于如何启动和运行的快速博客文章。 HTTP://blog.stoverud。无/职位/ atlasboard-ON-Azure的web应用程序/ – henningst