将我的简单应用程序部署到Azure作为App Service时,我遇到了一个非常奇怪的问题 . 该应用程序是ASP.NET Core和React前端 . 部署流程如下所示:
-
我编码,提交并推送到开发分支
-
Visual Studio Team Services获取更改并开始构建过程:Build steps,示例发布步骤日志:log
-
然后,在成功构建之后,发布过程将获取工件并启动Azure部署 .
-
结果:几天前所有人都已经工作了,但现在web.config没有使用IIS集成工具进行转换,因此它保持原始状态:
<!--
Configure your application settings in appsettings.json. Learn more at http://go.microsoft.com/fwlink/?LinkId=786380
-->
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
</handlers>
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
</system.webServer>
</configuration>
因此,当您尝试通过URL访问应用服务时,它会因错误502而崩溃 . 我通过访问app服务文件并手动更改web.config来验证,应用程序与正确的web.config一起正常工作 . 我的project.json:
{
"dependencies": {
"Autofac.Extensions.DependencyInjection": "4.0.0",
"AutoMapper": "5.2.0",
"AutoMapper.Extensions.Microsoft.DependencyInjection": "1.2.0",
"HumanAction.Historykon.Configuration": "1.0.0-*",
"HumanAction.Historykon.DataAccessLayer": "1.0.0-*",
"HumanAction.Historykon.Domain": "1.0.0-*",
"Microsoft.ApplicationInsights.AspNetCore": "2.0.0",
"Microsoft.AspNetCore.Cors": "1.0.1",
"Microsoft.AspNetCore.Mvc": "1.0.1",
"Microsoft.AspNetCore.Routing": "1.0.1",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.1",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
"Microsoft.EntityFrameworkCore": "1.0.1",
"Microsoft.EntityFrameworkCore.Design": {
"version": "1.0.1",
"type": "build"
},
"Microsoft.EntityFrameworkCore.SqlServer": "1.0.1",
"Microsoft.EntityFrameworkCore.Tools": {
"version": "1.0.0-preview4-final"
},
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.1",
"Microsoft.Extensions.Configuration.FileExtensions": "1.0.1",
"Microsoft.Extensions.Configuration.Json": "1.0.1",
"Microsoft.Extensions.Logging": "1.0.1",
"Microsoft.Extensions.Logging.Console": "1.0.1",
"Microsoft.Extensions.Logging.Debug": "1.0.1",
"Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.1",
"Microsoft.NETCore.App": {
"version": "1.0.1",
"type": "platform"
}
},
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": {
"version": "1.0.0-preview2-final"
}
},
"frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"portable-net45+win8"
]
}
},
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true
},
"runtimeOptions": {
"configProperties": {
"System.GC.Server": true
}
},
"publishOptions": {
"include": [
"wwwroot",
"**/*.cshtml",
"appsettings.json",
"appsettings.Dev.json",
"appsettings.Qa.json",
"appsettings.Live.json",
"web.config"
]
},
"scripts": {
"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
}
}
问题是:当我使用Visual Studio在本地发布应用程序时,一切顺利,web.config是正确的,应用程序正常工作 .
最后,问题是:出了什么问题?在之前,我想留在这个版本的sdk,但如果没有其他选项,我会考虑更新 . 非常感谢任何建议!
1 回答
而是使用Microsoft.AspNetCore.Server.IISIntegration.Tools 1.0.0-preview2-final . 相关主题:Visual Studio Team Services asp.net core build for IIS