Xav*_*rAM 5 c# azure asp.net-core
我有一个部署到 Azure 应用服务(基于西欧/Windows)的 Asp .NET Core 3.1 应用程序。当我使用依赖于框架的部署模式时,应用程序启动顺利。
但是,当我尝试切换到自包含部署时,应用程序无法启动并收到一条错误消息:HTTP 错误 500.30 - ANCM 进程内启动失败
将运行时从 win-x86 更改为 x64 并没有解决问题。
我检查了安装的 App Server 运行时版本,看起来运行时可用(参见下面的屏幕截图)。
我究竟做错了什么?
rog*_*nin 15
对于.net 5,问题是相同的,我必须从 web.config 中删除HostingModel =“inprocess”,以便它读取以下内容
<?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=".\Hub.WebApi.exe" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" />
</system.webServer>
</location>
</configuration>
Run Code Online (Sandbox Code Playgroud)
编辑 22 年 7 月 12 日
在新网站上发现.net 7也是如此。您将在这里看到.net 7,在 csproject 中我放置了 AspNetCoreHostingModel 和值 OutOfProcess,这意味着当您发布它时,它总是可以的,之后无需再编辑 web.config。
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
如果上述内容不能解决您的问题,并且您在https://github.com/dotnet/aspnetcore/issues/8980 中错过了它,但这解决了我的问题。
Per DimaSUN 在 2019 年 6 月 25 日评论:
ASP.NET Core 2.2 或更高版本:对于使用进程内托管模型的 64 位 (x64) 自包含部署,禁用 32 位 (x86) 进程的应用程序池。
如何:在 IIS 中打开应用程序池。选择网站 > 高级设置。将 32 位应用程序从 True 设置为 False。
您是否尝试过在应用程序服务中添加 .Net Core 3.1 扩展?开发工具 -> 扩展 -> 添加 -> Asp.Net Core 3.1 以及您需要的运行时。
我昨天遇到了同样的问题,添加扩展程序后,问题就消失了。
| 归档时间: |
|
| 查看次数: |
6850 次 |
| 最近记录: |