我有一个比较奇怪的问题.
我们正在处理的其中一个应用程序在发布到Azure Web App后停止工作.一切都在当地工作.经过长时间的调查,罪魁祸首是构建生成的web.config(在VSTFS中)具有:
<aspNetCore processPath=".\SomeServiceName.Api " stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
虽然正确的是:
<aspNetCore processPath=".\SomeServiceName.Api.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
请注意缺少的.exe.
项目的构建输出设置为Console Application.它是ASP.NET核心应用程序,运行在完整的框架上.使用Visual Studio BuildVSTS中的任务运行构建,并使用以下MSBuildArguments:
/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)"
如果我在我的开发机器上运行构建,使用MSBuild cli,使用相同的命令行参数,我得到:
<aspNetCore processPath="dotnet" arguments=".\SomeServiceName.Api.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
该项目正在使用<Project Sdk="Microsoft.NET.Sdk.Web">.
我猜我可以将web.config添加到项目中(它现在根本不存在)并且在源代码控制中按照我想要的方式进行控制,这应该可以解决我的部署失败的问题.但我想知道:
更新:
对于任何绊倒在这里的人,这里是github上的问题链接:https:
//github.com/aspnet/websdk/issues/408
看起来现在已经修复了,并且有一天将成为某些版本的一部分(不知道是什么虽然发布周期).