希望有人能帮助解决这个问题:
我已经在Azure上部署了.NET Core 3.0应用程序,尽管它显示“Publish Succceeded”,但应用程序没有加载(http 500,服务器错误)。Azure中的“诊断和解决问题”选项卡指向模块“AspNetCoreModuleV2”,如图Azure - Diagnose and solve problems所示
我试过了
- 按照此处的建议安装.NET 3.0运行时托管包aspNetCore 2.2.0 - AspNetCoreModuleV2 error
- 将web.config文件中的
modules="AspNetCoreModuleV2"
更改为modules="AspNetCoreModule"
,但一旦我发布应用程序,该文件将恢复为其原始值。 - 将
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
添加到csproj
,但没有任何区别,因此我将其删除
以下是我当前的csproj
文件:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Folder Include="wwwroot\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.0.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.0.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.0.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer.Design" Version="1.1.6" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.0.1" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.1.0-preview1-final" />
</ItemGroup>
</Project>
这是我的web.config
文件的样子
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\SportsStore.dll" stdoutLogEnabled="false" stdoutLogFile="\\?\%home%\LogFiles\stdout" hostingModel="inprocess" />
</system.webServer>
</location>
</configuration>
<!--ProjectGuid: 3f1b616a-5c07-4b23-9c86-ec6506dc3fa7-->
顺便说一下,应用程序在本地机器上运行时没有任何问题
任何帮助,可以指出我在正确的方向是高度赞赏。
5条答案
按热度按时间f87krz0w1#
编辑您的csproj
这样,在
dotnet publish
期间,TransformWebConfig
任务将按如下方式转换您的web.config
,这也适用于Azure WebApp在Azure WebApp中,
HTTP Error 500.31 - ANCM Failed to Find Native Dependencies
错误可能是由InProcess
托管模型和模块AspNetCoreModuleV2
引起的amrnrhlw2#
我试过发布为“自包含”并修改web.config,但是没有任何效果。
经过进一步的研究,我发现了Azure中的“应用服务编辑器”工具。看了一下输出错误,我意识到问题是数据库防火墙阻止了“我的”IP。我以前用我的IP添加了一个规则,但是,由于某种原因,错误消息中显示的IP与我的实际IP不同。一旦我用这个IP在数据库上添加了另一个规则,它就立即起作用了。
另一件奇怪的事情是,“诊断和解决问题”工具(AspNetCoreModuleV2)报告的错误与实际问题没有太大关系。
谢谢大家花时间回答我的问题。
krugob8w3#
检查
PublishProfiles
文件夹(在Properties
内)并确保您具有:自包含的应用程序将运行时与应用程序一起分发。
wfauudbj4#
您可以尝试直接在Azure上更改web.config,因此当您部署应用程序时,请转到web.config并将
AspNetCoreModuleV2
替换为AspNetCoreModule
。直接更改web.config将重新启动应用程序轮询,只是为了了解问题所在。请参阅同一文章,以及可能的解决方案:
AspNetCore 3.0 - HTTP错误500.0 - ANCM进程内处理程序加载失败
m1m5dgzv5#
什么工作对我来说,花了很多时间后,我使用VS 2022.我希望它能帮助其他人。
在web.config中,我将“inprocess”更改为“OutOfProcess”