ASP.NET核心发布错误:启动应用程序时出错

ASP.NET核心发布错误:启动应用程序时出错,asp.net,asp.net-core,asp.net-core-mvc,visual-studio-2017,asp.net-core-1.1,Asp.net,Asp.net Core,Asp.net Core Mvc,Visual Studio 2017,Asp.net Core 1.1,我试图在Windows Server 2008 R2上发布我的ASP.NET核心应用程序,但出现以下错误: “启动应用程序时出错。” 没有更多的描述 我能做什么?请看一下这篇文章:当出现这种错误时,它将为您提供一个很好的入门工具包,以获取基本日志信息。 这可能是一个错误的启动配置,或者与安装的.NET Core运行时有关,但是如果没有更多的技术信息,很难说清楚。尽管有很多事情可能会出错,正确的方法是实际排除错误,但我的情况更简单: 我忘了为Swagger配置发布输出路径 您可以通过以下步骤来实现

我试图在Windows Server 2008 R2上发布我的ASP.NET核心应用程序,但出现以下错误: “启动应用程序时出错。”

没有更多的描述


我能做什么?

请看一下这篇文章:当出现这种错误时,它将为您提供一个很好的入门工具包,以获取基本日志信息。

这可能是一个错误的启动配置,或者与安装的.NET Core运行时有关,但是如果没有更多的技术信息,很难说清楚。

尽管有很多事情可能会出错,正确的方法是实际排除错误,但我的情况更简单:

我忘了为Swagger配置发布输出路径

您可以通过以下步骤来实现这一点:

  • 右键单击您的项目
  • 单击
    Properties
  • 单击
    Build
    选项卡
  • 并在
    输出
    部分选中
    XML文档文件
    复选框 这将使用XML文件自动完成路径,但您可以将其更改为任何您想要的内容

    我从中复制粘贴解决方案

  • 尝试在web.config中启用日志记录
  • 如果没有日志,请检查事件查看器,将出现以下内容:
  • 无法创建stdoutLog文件C:\inetpub。。。错误代码=-2147024891

  • 尝试在另一个驱动器上设置网站,例如D:\inetpub\website
  • 在我的例子中,它可以从另一个驱动器正常工作,但不能与C:\inetpub\website一起工作 我想这是一种安全许可问题

    如果它没有帮助,你至少应该看到引导你前进的日志


    虽然我是电脑管理员,.NET Framework 4.7.1下的其他网站在C:\inetpub\asp.NET核心网站上运行正常,但这不是一个真正的错误。你必须找出真正的错误。要查看真正的错误,请执行以下操作。请记住,一旦发现问题并加以解决,就必须撤消这些更改。您不应该向最终用户显示真正的错误

    在您的开发环境中,尝试将其添加/更新到web.config以查看真正的错误

    <aspNetCore processPath=".\MyApplication.exe" arguments="" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout">
          <environmentVariables>
            <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
          </environmentVariables>
        </aspNetCore>
    
    public static IWebHost BuildWebHost(string[] args) =>
                WebHost.CreateDefaultBuilder(args)
                    .CaptureStartupErrors(true)
                    .UseSetting("detailedErrors", "true")
                    .UseStartup<Startup>()
                    .Build();
    
    
    
    在program.cs中,在下面添加/更新以查看真正的错误

    <aspNetCore processPath=".\MyApplication.exe" arguments="" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout">
          <environmentVariables>
            <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
          </environmentVariables>
        </aspNetCore>
    
    public static IWebHost BuildWebHost(string[] args) =>
                WebHost.CreateDefaultBuilder(args)
                    .CaptureStartupErrors(true)
                    .UseSetting("detailedErrors", "true")
                    .UseStartup<Startup>()
                    .Build();
    
    公共静态IWebHost BuildWebHost(字符串[]args)=>
    WebHost.CreateDefaultBuilder(args)
    .CaptureStartupErrors(真)
    .UseSetting(“详细错误”、“真”)
    .UseStartup()
    .Build();
    
    太棒了!非常感谢您,如果您遇到
    启动
    错误,并且标准错误日志没有帮助您,那么您可以在代码中启用额外的启动选项,以输出在开发过程中有用的实际完整原因。看看我的博客文章。