我有一个.NET核心web应用程序,我将其部署为Azure Web应用程序。
直到昨天晚上,当我应用Visual Studio 2017升级(v15.2)之前,它一直运行得很好。
.net核心版本从1.1.1升级到1.1.2。当我部署到Azure时,网站无法启动,并出现502.5错误。
经过调查,我发现Azure Core1.1.2没有部署到.NET镜像中。
我无法将新框架安装到web应用程序实例中(可以理解,在Program Files目录上的权限被拒绝)。我无法通过nuget包管理器“降级”,因为它报告该版本“被项目阻止”。我看不到在csproj文件中定义Microsoft.NETCore.App版本的方法,因为这似乎是由根<Project Sdk="Microsoft.NET.Sdk.Web">
元素“自动”控制的。
我尝试过自包含部署(将框架与web应用程序一起发布),但也不能正常工作。
除了等待新版本部署到Azure之外(我在他们的日程安排上找不到任何信息),有没有人有任何关于如何让web应用程序再次工作的想法?
有没有办法强制它在1.1.1下运行?
发布于 2017-05-12 03:52:09
更新5/12/2017:我们已经加速了1.1.2和1.0.5到应用服务的部署,现在已经完成。因此,任何人都不再需要下面的解决方法。
原始解决方案
最好的解决方法是在.csproj文件中设置:
<TargetFramework>netcoreapp1.1.1</TargetFramework>
而不是将其设置为netcoreapp1.1
。我们将在周二之前将1.1.2部署到Azure应用程序服务,在这一点上将不需要解决办法。
请注意,如果您将其设置为netcoreapp1.1.1
,则一旦1.1.2可用,它将自动前滚到该版本。因此,将其设置为netcoreapp1.1.1
并不会让您“坚持”到该版本。这是正确的,只要你使用便携模式(即依赖于操作系统上的框架)。如果您使用单机版并部署您自己的框架,那么您将坚持使用它(但这样您一开始就不会有这个问题,也就不需要这么做了!)。
发布于 2017-05-11 21:51:51
在Visual Studio 2017更新之后,我们也遇到了同样的问题。
一种解决方法是在Kudu中为您的站点编辑部署后的web.config。
在system.webServer
下的aspNetCore
条目的参数值的开头添加--fx-version 1.1.1
例如<aspNetCore processPath="%LAUNCHER_PATH%" arguments="--fx-version 1.1.1 PATH_TO_DLL" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
发布于 2017-05-11 21:58:52
在他们着手将1.1.2部署到web应用程序图像之前,我设法通过强制项目引用Microsoft.NETCore.App 1.1.1来修复这个问题
编辑csproj文件:
<ItemGroup> <PackageReference Update="Microsoft.NETCore.App" Version="1.1.1" /> <PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.0.0" /> <PackageReference Include="Microsoft.AspNetCore" Version="1.1.1" /> ... etc
https://stackoverflow.com/questions/43915377
复制相似问题