在CI部署到azure应用服务后获得502.5错误。
在调试控制台上运行dotnet {myproject}.dll
时,这是我得到的错误:
未处理的异常:System.IO.FileLoadException:无法加载文件或程序集'System.Diagnostics.DiagnosticSource,Version = 4.0.2.1,Culture = neutral,PublicKeyToken = cc7b13ffcd2ddd51'。定位的程序集的清单定义与程序集引用不匹配。 (来自HRESULT的异常:0x80131040)位于Microsoft.AspNetCore.Hosting.WebHostBuilder.BuildCommonServices(AggregateException和hostingStartupErrors)的Microsoft.AspNetCore.Hosting.WebHostBuilder.Build()at My.IOEducation.Api.Program.Main(String [] args)in D:\ home \ site \ repository \ My.IOEducation.Api \ Program.cs:第11行
运行dotnet --version
返回2.0.0
还有其他人遇到这个以及有关如何解决的任何建议吗?
更新:这是项目文件的内容。
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Folder Include="Models\Report\" />
<Folder Include="wwwroot\" />
<Folder Include="DataAccess\ExternalApis\" />
<Folder Include="DataAccess\ExternalApis\Helpers\" />
<Folder Include="Models\Dashboard\" />
<Folder Include="Helpers\" />
<Folder Include="DataAccess\Redis\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.ResponseCompression" Version="2.0.0" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="2.0.0" />
<PackageReference Include="Newtonsoft.Json" Version="10.0.3" />
<PackageReference Include="PowerBI.NetStandard.Api" Version="1.0.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="1.0.0" />
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerUi" Version="1.0.0" />
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerGen" Version="1.0.0" />
<PackageReference Include="Swashbuckle.AspNetCore.Swagger" Version="1.0.0" />
<PackageReference Include="Dapper" Version="1.50.2" />
<PackageReference Include="StackExchange.Redis" Version="1.2.6" />
<PackageReference Include="Microsoft.AspNetCore" Version="2.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.0.0" />
</ItemGroup>
<ItemGroup>
<None Remove="DataAccess\.DS_Store" />
<None Remove=".DS_Store" />
</ItemGroup>
</Project>
我与aspnet IISIntegration团队成员交谈并找到了我的解决方案。
tldr:在kudu上清空你的wwwroot文件夹。
这个问题涉及从以前的1.x部署中遗留下来的旧东西
步骤1:
导航到Kudu控制台(https:// {yourapp} .scm.azurewebsites.net /)
第2步:
第3步:
(注意:导航到“站点”目录)
(注意:此wwwroot中有一个wwwroot文件夹。您应该删除“site”目录中的那个)
第4步:
添加一个名为wwwroot的新空文件夹,您刚刚删除了上一个文件夹(在“site”目录中)
(注意:当我没有空的wwwroot文件夹时,我的部署失败了)
第5步:重新部署您的应用程序,并希望它的工作原理。祝好运
发现了这个问题。让我首先补充一点信息。这最初是一个.net-core-1.1项目,我按照Microsoft提供的说明更新到2.0。升级后,我在本地运行时没有任何问题,但是一旦我尝试发布我的azure应用程序服务,我就一直收到IIS错误。最后的努力是今天早上从头开始创建一个新的.net-core-2.0项目,并注意到新的项目文件包含:
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" />
</ItemGroup>
我将其添加到我现有的项目文件(从1.1升级的文件)中,现在错误消失并且问题已解决。
全新的.net核心2.1应用尝试使用新的应用服务计划部署到新的Azure应用服务。同样的问题,即502.5错误(HTTP错误502.5 - 进程失败)。
我实现了上述步骤,但仍然遇到了错误。我选择使用选择自包含的部署模式(与框架相关(win-x64))。
这解决了我的问题。
这个答案也提交给[问题]:ASP.NET Core 2.0 Preview 2 on IIS error 502.5
也许这些问题应该联系起来。