问题 Azure Web Apps和.NET Core 1.1.2


我有一个.NET Core Web应用程序,我将其部署为Azure Web App。

直到昨晚我应用Visual Studio 2017升级(v15.2)时,这一直工作正常。

.net核心版本从1.1.1升级到1.1.2。当我部署到Azure时,网站无法启动502.5错误。

经过调查,我可以看到.NET Core 1.1.2未部署到Azure映像。

我无法将新框架安装到Web应用程序实例(可以理解的是,Program Files目录中的权限被拒绝)。我无法通过nuget包管理器“降级”,因为它报告的版本是“被项目阻止”。我看不到在csproj文件中定义Microsoft.NETCore.App版本的方法,因为它似乎是由root自动“控制” <Project Sdk="Microsoft.NET.Sdk.Web"> 元件。

我尝试过尝试一个自包含的部署(使用Web应用程序发布框架),但也无法实现这一点。

没有等待将新版本部署到Azure(我找不到关于他们的日程安排的任何信息)是否有人对如何让Web应用程序再次运行有任何想法?

有没有办法强制它在1.1.1下运行?


10104
2018-05-11 12:25


起源

自从vs2017更新到版本V15.2后,我遇到了同样的错误...... - Geotinc
可能重复 ASP.NET Core Web应用程序HTTP错误502.5 Visual Studio 15.2上的进程失败 - ThisWillDoIt


答案:


更新5/12/2017:我们已将1.1.2和1.0.5的部署加速到App Service,现在已经完成。因此,任何人都不再需要下面的解决方法。

原始方案

最好的解决方法是在.csproj文件中设置它:

<TargetFramework>netcoreapp1.1.1</TargetFramework>

而不是被设置为 netcoreapp1.1。我们将在星期二之前将1.1.2部署到Azure App Service,此时不需要解决方法。

请注意,如果将其设置为 netcoreapp1.1.1,一旦1.1.2可用,它将自动前滚到那。所以设置它 netcoreapp1.1.1 并不会让你“陷入”那个版本。只要您使用可移植模式(即依赖于操作系统上的框架),情况就是如此。如果您使用独立并部署自己的框架,那么您将坚持使用它(但那时您不会首先遇到此问题而且不需要这样做!)。


13
2018-05-11 19:52



尽管我喜欢闪亮的新功能和修复,但您认为未来可以推出Visual Studio更新 后 他们的先决条件? - Edward Brey
@EdwardBrey当然,这里有一些学习。问题在于没有人意识到只是拥有新的VS会导致部署的位以新版本为目标,即使用户的文件完全相同。所以是的,我们搞砸了,我们确保下次避免这种情况。 - David Ebbo
感谢您在这里回复,并且您承认这不是最佳选择。 - Boland
@DavidEbbo我仍然遇到此错误,但根据您更新的答案,使用AspNetCore 1.1.2时,不需要将netcoreapp1.1.1设置为targetFramework吗?我对么?是否还需要其他设置才能让事情正常运行? - Larsi
@Larsi你很可能遇到不同的东西,即使错误看起来很相似。 1.1.2到处都是部署,所以这个问题不再存在。请开始一个新问题,详细说明您的具体情况。随意链接从这里链接上下文。 - David Ebbo


我们在Visual Studio 2017更新后遇到了同样的问题。

解决方法是在部署后在Kudu中编辑站点的web.config。

--fx-version 1.1.1 在参数的开头 aspNetCore 进入 system.webServer

例如 <aspNetCore processPath="%LAUNCHER_PATH%" arguments="--fx-version 1.1.1 PATH_TO_DLL" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>


1
2018-05-11 13:51



请参阅我的答案,了解更简单的解决方法,在Kudu部署后不需要黑客攻击。 - David Ebbo


在他们开始将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


1
2018-05-11 13:58



这不是推荐的解决方法。相反,只需改变 TargetFramework 根据我的回答。 - David Ebbo
谢谢@DavidEbbo。 nuget引用和TargetFramework之间的相关性是什么?这有点令人困惑。我已将所有软件包更新到最新版本,并将targetframework更新为1.1.2。由于Azure的bug,我将其恢复为1.1.1。但是我要离开NuGet了。 - Boland