Azure不能正确发布Node.js应用程序

TL; DR

  • 作为Cloud Service托pipe在Azure上的Node.js应用程序。
  • 发布失败(应用程序没有上传),但似乎已经工作。

解释:

我在Windows Azure上有一个帐户,我使用了网站和服务。 我将我的网站移动到云服务,以便能够使用自定义域。

自移动以来,我使用Azure cmdlet发布我的Node.js Web服务器。 发表之前,工作正常,通常需要5至10分钟才能完成。 一旦发布,网站就会包含最新的内容。

我的问题是,现在,发布不到2分钟,没有错误抛出,内容不更新。 为什么我的应用程序不发布它的内容?

以下是我的发布输出:

PS C:\Projects\Azure\CloudServices\jwbsite\JWB> ls Directory: C:\Projects\Azure\CloudServices\jwbsite\JWB Mode LastWriteTime Length Name ---- ------------- ------ ---- d---- 9/8/2012 10:22 AM bin d---- 9/12/2012 3:30 PM controllers d---- 9/11/2012 1:16 PM data d---- 9/12/2012 4:00 PM extensions d---- 9/10/2012 2:37 PM models d---- 9/12/2012 2:45 PM node_modules d---- 9/12/2012 3:23 PM public d---- 9/8/2012 10:28 AM views -a--- 9/25/2012 3:44 PM 411 package.json -a--- 9/13/2012 11:14 AM 224 robots.txt -a--- 9/17/2012 2:45 PM 605 routes.js -a--- 9/17/2012 10:59 AM 1902 server.js -a--- 8/25/2012 1:28 PM 3251 Web.cloud.config -a--- 8/25/2012 1:28 PM 3251 Web.config PS C:\Projects\Azure\CloudServices\jwbsite\JWB> Publish-AzureServiceProject Publishing to Windows Azure. This may take several minutes... 4:27:17 PM - Preparing runtime deployment for service 'jwbsite' 4:27:20 PM - Preparing deployment for jwbsite with Subscription ID: ABCDEFGH-IJKL-MNOP-QRST-UVWXYZ012345... 4:27:21 PM - Connecting... 4:27:27 PM - Verifying storage account 'jwbsite'... 4:27:27 PM - Uploading Package... 4:27:39 PM - Upgrading... 4:27:50 PM - Created Deployment ID: ABCDEFGHIJKLMNOPQRSTUVWXYZABCDE. 4:27:50 PM - Starting... 4:27:50 PM - Initializing... 4:27:51 PM - Instance JWB_IN_0 of role JWB is ready. 4:27:51 PM - Instance JWB_IN_1 of role JWB is ready. 4:27:51 PM - Instance JWB_IN_2 of role JWB is ready. 4:27:51 PM - Instance JWB_IN_3 of role JWB is ready. 4:27:52 PM - Created Website URL: http://jwbsite.cloudapp.net. 4:27:52 PM - Complete. PS C:\Projects\Azure\CloudServices\jwbsite\JWB> 

让我知道,我感谢帮助。

       

网上收集的解决方案 "Azure不能正确发布Node.js应用程序"

如果其他人有这个问题或谷歌发送你的这里,我确实find了错误的原因。

检查您的文件名/path长度!

如果文件名太长,那么该软件包将不会上传到Azure。 我发现这一点,试图发布到Azure的模拟,这给了我正确的错误。 我不确定为什么在推送到真正的Azure实例时不会出现错误。

Node.js注意:

文件名/path太长的主要来源是模块。 当通过NPM安装模块时,模块将安装当时不存在的依赖关系。 一定要查看你的模块文件结构,并尽量减less它(我正在为脚本来平衡它)。

Azure支持团队非常乐于帮助解决这个令人困惑的问题,他们和我一起工作了将近2个月,让我的站点恢复正常运行。

如果您遇到相同或相似的问题,请尝试部署到本地Azure模拟,并查看返回的错误。

我觉得这个错误是愚蠢的,但希望我的愚蠢可以帮助避免别人的。

我有同样的问题,我用这个模块,使我的path更短https://www.npmjs.com/package/flatten-packages它解决了问题