【问题标题】:Azure not publishing Node.js App correctlyAzure 未正确发布 Node.js 应用程序
【发布时间】:2012-09-25 20:38:37
【问题描述】:

TL;DR

  • 作为云服务托管在 Azure 上的 Node.js 应用。
  • 发布失败(应用未上传)但似乎有效。

解释:

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

自从搬家后,我使用 Azure cmdlet 发布我的 Node.js 网络服务器。在发布之前工作正常,通常需要 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>

请告诉我,感谢您的帮助。

【问题讨论】:

  • 这不会回答问题,但是如果您删除部署,问题会再次出现吗?
  • @JimO'Neil 当您说部署时,您指的是哪些文件?
  • 当您重新部署时,您正在更新现有的服务;我想知道创建一个新服务是否会“清除”问题,或者可能会更加清楚。查看 Remove-Azuredeployment 和 Remove-AzureService cmdlet。同样,不会“修复”它,但可能会解决它和/或提供更多关于它为什么不工作的信息
  • 我一直在使用 Azure 的技术支持,他们不知道为什么它不起作用,但他们说他们会上传我为我准备的内容。如果我弄清楚发生了什么,我会在这里发帖。

标签: node.js azure cloud project publish


【解决方案1】:

如果其他人遇到此问题或 Google 将您发送到此处,我确实找到了错误原因。

检查您的文件名/路径长度!

如果文件名太长,则包将不会上传到 Azure。我通过尝试发布到 Azure 的仿真发现了这一点,这给了我正确的错误。我不确定为什么在推送到真正的 Azure 实例时它没有给出错误。

Node.js 注意:

文件名/路径过长的主要来源是模块。 通过 NPM 安装模块时,模块将安装它的 当时不存在的依赖项。一定要仔细看 您的模块文件结构并尝试对其进行精简(我正在研究 脚本来平衡它)。

Azure 支持团队在试图解决这个令人困惑的问题方面提供了极大的帮助,他们与我合作了近 2 个月,以使我的网站恢复正常运行。

如果您遇到相同或类似的问题,请尝试部署到 Azure 的本地仿真,看看您会得到什么错误。

我因收到此错误而感到愚蠢,但希望我的愚蠢可以帮助避免其他人的错误。

【讨论】:

  • 我是 Node 新手:我可以手动修改模块文件夹名称以使其更短吗?它会以某种方式严重影响应用程序吗?我的意思是:我可以在不引起错误的情况下这样做吗?
  • “我正在编写一个脚本来为你平衡它”。你完成了吗? ;)
  • @Ludwik11 我认为这是从 Github 评论或其他内容中引用的,我现在没有脚本,可能已经有其他一些东西了。至于重命名文件夹,您不想这样做。最重要的是限制你的项目位置(不要从很长的路径开始)并将尽可能多的模块移动到根目录。
【解决方案2】:

我遇到了同样的问题,我使用这个模块来缩短我的路径 https://www.npmjs.com/package/flatten-packages 它解决了问题

【讨论】:

    猜你喜欢
    • 2015-08-06
    • 2020-12-15
    • 2014-07-25
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    相关资源
    最近更新 更多