.Net核心服务发布到IIS后不可用

时间:2019-02-13 08:11:24

标签: c# visual-studio windows-server-2008 iis-8.5

当我尝试访问IIS时,将其发布到IIS之后,出现错误: 服务不可用

  

HTTP错误503。该服务不可用。

下一步我该怎么做?

我在IIS 8.5上使用Windows Server 2008(64位)。该应用程序是Web api .NET CORE 2.2.1。

在已安装的Windows计算机上:

  • Microsoft .NET CORE 2.2.1-Windows Server托管
  • Microsoft .NET CORE运行时-2.2.1(x64)
  • Microsoft .NET CORE运行时-2.2.1(x86)
  • Microsoft Visual C ++ 2015可再发行组件(x86)-14.024212
  • Microsoft Visual C ++ 2015可再发行组件(x64)-14.024123
  • Microsoft Visual C ++ 2008可再发行-x86-9.0.30729.4148
  • Microsoft Visual C ++ 2008可再发行-x64-9.0.30729.6161

我从视觉工作室发布了出版物。进入模块上的IIS,我有AspNetCoreModuleV2。

我拥有的webconfig文件:

<?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=".\App.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="InProcess" />
   </system.webServer>
 </location>
</configuration>
<!--ProjectGuid: 9d04b7be-318b-4e95-aae3-c47aab07db30-->

CreateWebHostBuilder方法中的代码:

 return WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>().UseSerilog((ctx, cfg) =>
            {
                cfg.ReadFrom.Configuration(ctx.Configuration)
                    .MinimumLevel.Verbose()
                    .MinimumLevel.Override("Microsoft", LogEventLevel.Information);
            });

1 个答案:

答案 0 :(得分:1)

您可以检查以下步骤以检测问题。

  1. 确保已安装.net core运行时和AspNetCoreModule,并且安装后重新启动操作系统
  2. 确保您的应用程序池.net框架版本在iis上为“无托管代码”。
  3. 确保您的应用程序正确预热。 (在应用程序所在的目录中打开命令提示符。键入dotnet yourapp.dll,然后按Enter。)

  4. 如果使用dotnet命令正确启动的应用程序,请检查日志文件位置(“。\ logs \ stdout”)的访问级别。要使applicationpool用户具有读写能力,请执行以下步骤https://stackoverflow.com/a/7334485/4172872

更新:

应用程序的扩展真的是“ .exe”吗?

<aspNetCore processPath=".\App.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="InProcess" />