【问题标题】:How to switch dotnet core webapp to development mode under IISIIS下如何将dotnet core webapp切换到开发模式
【发布时间】:2020-10-08 13:53:23
【问题描述】:

我有一个dotnet core 3.1 应用程序托管在IIS 下,所以环境变量设置如下:

<?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="dotnet" arguments=".\MyApp.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="OutOfProcess">
        <environmentVariables>
          <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
          <environmentVariable name="ASPNETCORE_URLS" value="https://dev.mycompany.com/MyApp" />
          <environmentVariable name="LOCAL" value="false" />
        </environmentVariables>
      </aspNetCore>
    </system.webServer>
  </location>
</configuration>

当抛出错误时,我会看到:

鉴于应用程序部署在 IIS 下,我该怎么做才能显示实际异常?

【问题讨论】:

    标签: exception iis .net-core


    【解决方案1】:

    在 Startup.cs 中,进行以下更改:

        if (env.IsDevelopment())
        {
            // Following enables exception page
            app.UseDeveloperExceptionPage();
        }
    

    以上行将只为调试环境启用开发者异常页面。你可以把这条线 app.UseDeveloperExceptionPage();在 if 之外始终显示异常和堆栈跟踪。

    如果应用已经部署,则无法直接获取异常信息。

    如果我可以访问主机,我会做的另一件事。我登录主机并尝试使用 localhost url http://localhost:{port} 访问服务。这会强制 dotnet 假定它是本地开发人员环境,然后显示异常消息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-03
      • 1970-01-01
      • 2018-10-15
      相关资源
      最近更新 更多