如何从VS2015将ASP.NET 5 Aurelia应用程序部署到Azure



我正尝试使用Visual Studio 2015中的Web deploy([右键单击]->publish)将基于ASP.NET 5 ES2016导航框架的Aurelia应用程序部署到Microsoft Azure。

但我无法让宣誓书生效。

我已将project.json文件中的prepublish设置更改为:

"prepublish": [ "npm install", "gulp bundle" ]

但这只会使发布过程在Visual Studio中失败。从控制台运行gulp bundle工作正常。

因此,我的下一次尝试是删除所有prepublish任务,手动运行gulp bundle,然后发布。这允许发布过程完成,但azure上的web应用程序永远不会加载,最终会让我超时。

考虑到这可能与jspm_packages文件夹有关,我尝试将这些文件夹包含在基于该github线程的Web.xproj文件中,但这导致了以下错误:

502 - Web server received an invalid response while acting as a gateway or proxy server.

更新

我已经尝试过重新设置prepublish脚本并从控制台运行dnu publish。它运行起来没有问题,并且在binoutputwwwroot文件夹中生成了所有必要的输出。但是,当从Visual Studio中的"发布"连续菜单操作运行时,同样的过程会失败;则不产生输出。

只是在这里添加它,以防它能为这个问题提供一些线索。

更新2

好的,我注意到dnu publish命令的关闭消息是

Using command 'web' as entry point for web.config

然后一分钱掉了下来。Aurelia Skeleton Navigation解决方案在`project.json:中定义了以下命令

"web": "Microsoft.AspNet.Server.Kestrel --server.urls=http://*:9000/",

这当然在Azure中不起作用。因此,我删除了--server.urls选项,再次从project.json中删除了prepublish脚本,瞧,应用程序运行。。。

。。。未捆绑

无论如何,自从开始输入这个问题以来,已经发生了很多变化,但我仍然想知道:

  1. 当我定义了prepublish任务时,为什么Visual Studio的发布会失败?

  2. 最重要的是,我如何将捆绑的Aurelia应用程序发布到azure

更新3

当从控制台运行时,绑定显然有效。我想在从project.json中删除--server.urls设置后,我从未尝试过发布捆绑应用程序。

那么我们现在在哪里呢

使用"prepublish": [ "gulp bundle" ]发布到Azure仍然失败。这是Aurelia导航骨架附带的gulpfile.js

require('require-dir')('build/tasks');

Visual Studio在运行prepublish任务时在watch.js的以下行中抛出错误:

console.log(`File ${event.path} was ${event.type}, running tasks...`);  

这是非常不可理解的,因为bundle任务调用watch。曾经并且从控制台运行gulp bundle可以按预期工作。

因此,看起来VS2015正在build/tasks文件夹加载每个任务。我已经尝试过完全注释掉watch.js文件,但后来只出现了以下错误:prepublish failed with code 1

如果有任何关于为什么我不能用prepublish任务发布的帮助或想法,我们将不胜感激。

要使用Web Deploy将Aurelia ASP.NET 5 ES2016导航骨架发布到Azure(右键单击>发布),我们必须对project.json进行两次更改。

添加一个预发布条目,该条目将安装NPM依赖项(否则为失败的gump),安装JSPM包,并与gump绑定。

"prepublish": [ "npm install", "jspm install -y", "gulp bundle" ]

从web命令中删除--server.urls=http://*:9000/,因为Azure不支持该地址。这是正确的条目:

"web": "Microsoft.AspNet.Server.Kestrel"

通过这两项更改,Web Deploy正在使用Visual Studio Community 2015 Update 2对本地IIS和Azure Web应用程序进行工作。

最新更新