C# AspNetCoreModuleV2发布.NET核心3.0
希望有人能帮助解决这个问题: 我已经在Azure上部署了我的.NET Core 3.0应用程序,尽管它显示“发布成功”。应用程序未加载(http 500,服务器错误)。 Azure中的“诊断和解决问题”选项卡指向模块“AspNetCoreModuleV2”,如图所示 我试过:C# AspNetCoreModuleV2发布.NET核心3.0,c#,asp.net-mvc,azure,asp.net-core,asp.net-core-3.0,C#,Asp.net Mvc,Azure,Asp.net Core,Asp.net Core 3.0,希望有人能帮助解决这个问题: 我已经在Azure上部署了我的.NET Core 3.0应用程序,尽管它显示“发布成功”。应用程序未加载(http 500,服务器错误)。 Azure中的“诊断和解决问题”选项卡指向模块“AspNetCoreModuleV2”,如图所示 我试过: 按照此处的建议安装.NET3.0运行时托管捆绑包 将web.config文件上的modules=“AspNetCoreModuleV2”更改为modules=“AspNetCoreModule”,但一旦发布应用程序,该
- 按照此处的建议安装.NET3.0运行时托管捆绑包
- 将web.config文件上的
更改为modules=“AspNetCoreModuleV2”
,但一旦发布应用程序,该文件将恢复为其原始值modules=“AspNetCoreModule”
- 将
添加到InProcess
中,但没有什么不同,所以我删除了它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>
顺便说一下,应用程序在本地计算机上运行时没有任何问题
非常感谢能为我指明正确方向的任何帮助。请检查
PublishProfiles
文件夹(位于属性
内)下的内容,并确保:
<SelfContained>true</SelfContained>
true
自包含的应用程序将运行时与应用程序一起分发
您可以尝试直接在Azure上更改web.config,因此在部署应用程序时,请转到web.config并将
AspNetCoreModuleV2
替换为AspNetCoreModule
。直接更改web.config将重新启动应用程序轮询,以了解问题所在
请参阅同一篇文章,以及可能的解决方案:
我尝试过以“自包含”的方式发布并修改web.config,但是没有任何效果
经过进一步研究,我发现了Azure中的“应用服务编辑器”工具。查看输出错误后,我意识到问题与数据库防火墙阻止“我的”IP有关。我以前在我的IP中添加了一个规则,但是,由于某些原因,错误消息中显示的IP与我的实际IP不同。一旦我用这个IP在数据库中添加了另一条规则,它就立即起作用了
另一件奇怪的事情是,“诊断和解决问题”工具(AspNetCoreModuleV2)报告的错误与实际问题没有多大关系
感谢大家抽出时间回答我的问题。编辑您的csproj
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
<AspNetCoreModuleName>AspNetCoreModuleV2</AspNetCoreModuleName>
..
在Azure WebApp中,
HTTP错误500.31-ANCM未能找到本机依赖项
错误可能是由于InProcess
托管模型和模块AspNetCoreModuleV2
造成的。我想做一些类似的事情,但是,我不确定在Azure中直接在哪里找到web.config?我认为这不容易更改,否则,您是否尝试将应用程序部署为自包含式?我试图避免将其部署为自包含式,因为这似乎不是最佳选择(根据Microsoft网站上的文档),但我认为我必须尝试……在我的密钥库上配置防火墙,以仅允许从“选定网络”进行访问,这在我的.NET代码3.0应用程序上触发了错误“500.30进程中启动失败”。将密钥Vault FW切换回所有网络修复了该问题。
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
<AspNetCoreModuleName>AspNetCoreModuleV2</AspNetCoreModuleName>
..
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\assembly.dll" hostingModel="OutOfProcess" />
</system.webServer>
</location>
</configuration>