Jas*_*win 5 asp.net iis asp.net-core
这是我从 ASP.Net Core 2.2 更新到 3.1 的第二个项目。第一个运行良好。第二个在 Visual Studio (2019) 中运行良好,但是当您发布它并从 dotnet CLI 运行它时,控制台会无限期挂起,控制台中没有输出,我启用了 stdout,输出文件为零字节。
该解决方案托管在 IIS 中,当我尝试通过 IIS 运行它时,我在应用程序事件日志中看到以下条目:
具有物理根目录 'D:\wwwroot\InclusionService_UAT\' 的应用程序 '/LM/W3SVC/2/ROOT' 无法使用命令行 'C:\Program Files\dotnet\dotnet.exe .\InclusionService.Web.dll' 启动进程阶段 'PostStartCheck',ErrorCode = '0x8027025a',分配端口 12973,retryCounter '1'。
和
具有物理根目录 'D:\wwwroot\InclusionService_UAT\' 的应用程序 '/LM/W3SVC/2/ROOT' 无法使用命令行 'C:\Program Files\dotnet\dotnet.exe .\InclusionService.Web.dll' 启动进程多次重试。无法绑定到端口“35033”。从多次重试中捕获的 stdout 和 stderr 日志的前 30KB 字符:不再显示
这是我的 Program.cs,在我的其他迁移解决方案中完全相同:
public static void Main(string[] args)
{
var builder = new HostBuilder()
.ConfigureWebHostDefaults(opt =>
{
opt.UseStartup<Startup>();
opt.UseIISIntegration();
});
var host = builder.Build();
host.Start();
}
Run Code Online (Sandbox Code Playgroud)
如果有一些输出,调试会容易得多,但没有什么可继续的。
我还必须确保 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=".\MyApp.exe" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
</system.webServer>
</location>
</configuration>
Run Code Online (Sandbox Code Playgroud)
指定 HostingModel 对我来说很有效。
program.cs 似乎没有什么区别,但它看起来如下(不推荐使用 WebHostBuilder):
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseContentRoot(Directory.GetCurrentDirectory())
.UseStartup<Startup>()
.UseIIS();
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4221 次 |
| 最近记录: |