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();
}
如果有一些输出,调试会容易得多,但没有什么可继续的。
我还必须确保 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>
指定 HostingModel 对我来说很有效。
program.cs 似乎没有什么区别,但它看起来如下(不推荐使用 WebHostBuilder):
public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseContentRoot(Directory.GetCurrentDirectory())
            .UseStartup<Startup>()
            .UseIIS();
        });
| 归档时间: | 
 | 
| 查看次数: | 4221 次 | 
| 最近记录: |