首页 > 解决方案 > IIS下如何将dotnet core webapp切换到开发模式

问题描述

我有一个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 下,我该怎么做才能显示实际异常?

标签: exceptioniis.net-core

解决方案


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

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

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

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

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


推荐阅读