Azure未正确发布Node.js应用程序 TL;博士 Node.js应用程序作为云服务托管在Azure上 发布失败(应用程序未上载),但似乎已工作 解释:

Azure未正确发布Node.js应用程序 TL;博士 Node.js应用程序作为云服务托管在Azure上 发布失败(应用程序未上载),但似乎已工作 解释:,node.js,azure,cloud,project,publish,Node.js,Azure,Cloud,Project,Publish,我在WindowsAzure上有一个帐户,在那里我使用了网站和云服务。我将我的网站移动到云服务,以便能够使用自定义域 移动之后,我使用Azure cmdlet发布Node.js Web服务器。在发布之前,它工作得很好,通常需要5到10分钟才能完成。一旦发布,网站将包含最新的内容 我的问题是,现在发布只需不到2分钟,不会抛出错误,内容也不会更新为什么我的应用程序不发布其内容? 以下是我的发布输出: PS C:\Projects\Azure\CloudServices\jwbsite\JWB>

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

移动之后,我使用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。我通过尝试发布到Azure的仿真中发现了这一点,该仿真给出了正确的错误。我不知道为什么它在推送到真正的Azure实例时没有给出错误

Node.js注意:

过长文件名/路径的主要来源是模块。 通过NPM安装模块时,模块将安装其 此时不存在的依赖项。一定要看清楚 您的模块文件结构,并尝试缩小它(我正在一个 脚本来为您平衡它)

Azure支持团队非常乐于助人,试图弄清这个令人困惑的问题,他们与我一起工作了近2个月,让我的网站恢复运行

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


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

我也有同样的问题,我使用这个模块来缩短我的路径
它修复了问题

这不会回答问题,但如果删除部署,问题会再次出现吗?@JimO'Neil当你说部署时,你在谈论哪些文件?当你重新部署时,你正在更新现有的服务;我想知道创建一个新的服务是否会“清除”这个问题,或者可能会提供更多的信息。查看Remove-Azuredeployment和Remove-AzureService cmdlet。同样,它不会“修复”它,但可能会解决它和/或提供更多关于它为什么不起作用的信息。我一直在与Azure的技术支持合作,他们不知道它为什么不起作用,但他们说他们将上传我所拥有的。如果我知道发生了什么事情,我会发回这里。我是Node的新手:我可以手动修改模块文件夹名称以缩短它们吗?它是否会严重影响应用程序?我的意思是:我能做到不出错吗?“我正在为你编写一个平衡脚本”。你做完了吗@Ludwik11我想那是引用了Github的评论或其他什么,我现在没有脚本,可能已经有其他东西了。至于重命名文件夹,您不想这样做。要做的最重要的事情是限制您的项目位置(不要以长路径开始),并将尽可能多的模块移动到根目录。