C# NET Core 2默认值';Web应用程序“;在win7下的远程IIS上失败

C# NET Core 2默认值';Web应用程序“;在win7下的远程IIS上失败,c#,iis,asp.net-core,C#,Iis,Asp.net Core,构建了默认的Net Core 2应用程序,未经授权,并通过VS2017将其成功web部署到Win 7下的远程IIS实例。但是,该应用程序无法运行,产生HTTP 500错误 日志文件显示500.19错误: 字段:日期时间s-ip cs方法cs uri stem cs uri查询s-port cs用户名c-ip cs(用户代理)sc状态sc子状态sc-win32-status 所用时间2018-03-29 20:42:20:1 GET/-81-::1 Mozilla/5.0+(Windows+NT+

构建了默认的Net Core 2应用程序,未经授权,并通过VS2017将其成功web部署到Win 7下的远程IIS实例。但是,该应用程序无法运行,产生HTTP 500错误

日志文件显示500.19错误:

字段:日期时间s-ip cs方法cs uri stem cs uri查询s-port cs用户名c-ip cs(用户代理)sc状态sc子状态sc-win32-status 所用时间2018-03-29 20:42:20:1 GET/-81-::1 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+Trident/7.0;+rv:11.0)+like+Gecko 500 195 296

经过研究,似乎有无数的选项可以设置为在IIS下运行。我首先尝试了MS,这导致了上述错误

以下是web.config:

 <?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" 
           path="*" verb="*" 
           modules="AspNetCoreModule" 
           resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="dotnet" 
                arguments=".\WebApplication1.dll" 
                stdoutLogEnabled="true" 
                stdoutLogFile=".\logs\stdout" />
  </system.webServer>
</configuration>

IIS加载项:

  • MS Web平台安装程序

  • Net核心服务器托管

  • Web部署

  • MS.NET Core 2.0.6 Windows服务器托管

  • 问题:

  • 当发布到IIS时,默认应用程序是否应按原样工作
  • 如果没有,有什么必要

  • 这没有显示有关错误的足够信息

    首先,我建议您在web.config下启用stdoutLog。在program.cs下启用详细的错误日志也是有意义的,包括
    UseSetting(“detailedErrors”、“true”)
    CaptureStartupErrors(真)

    运行时标识符的目录可以在中找到


    然后,您需要正确地将发布配置文件更新到目标远程平台。默认情况下,它是“可移植的”

    这不会显示足够的错误信息

    首先,我建议您在web.config下启用stdoutLog。在program.cs下启用详细的错误日志也是有意义的,包括
    UseSetting(“detailedErrors”、“true”)
    CaptureStartupErrors(真)

    运行时标识符的目录可以在中找到


    然后,您需要正确地将发布配置文件更新到目标远程平台。默认情况下,它是“可移植的”

    解决方案是将IIS应用程序池访问权限添加到存放Net Core应用程序的文件夹中,如Microsoft文档所示

    因此,是的,默认的ASP.NET Core 2应用程序将在IIS下正常运行。这个问题和应用完全无关

    由于我对web开发和IIS的无知,这个问题花费了我将近三天的时间,我将发布这个答案,以防其他人也有同样的问题


    感谢Simonare让我走上正轨,尽管是间接的。

    解决方案是将IIS应用程序池访问权限添加到存放Net Core应用程序的文件夹中,如Microsoft文档所示

    因此,是的,默认的ASP.NET Core 2应用程序将在IIS下正常运行。这个问题和应用完全无关

    由于我对web开发和IIS的无知,这个问题花费了我将近三天的时间,我将发布这个答案,以防其他人也有同样的问题



    感谢Simonare让我走上正轨,尽管是间接的。

    当您检查事件日志(使用
    事件查看器
    )时,有什么有趣的地方吗?您安装了.NET Core Server托管捆绑包吗?它无法与OOB IISYes一起工作,捆绑包已安装。请参见上文以查看已安装的软件包。实际的500.19页面将说明原因。尝试各种方法找到它。当您检查事件日志(使用
    事件查看器
    )时,有什么有趣的地方吗?您是否安装了.NET Core Server托管捆绑包?它无法与OOB IISYes一起工作,捆绑包已安装。请参见上文以查看已安装的软件包。实际的500.19页面将说明原因。想方设法找到它。谢谢你的帮助。默认生成的web应用程序应该在IIS下运行还是需要更改?您不需要更改,但需要在.NET Core 2.0.6 Runtime下安装.NET Core运行时软件包(2个软件包),并同时安装托管这两个软件包的Windows Server。需要更多吗?不需要。请按照我提到的故障排除程序进行操作。谢谢,Simonare。原来是文件夹权限问题,应用本身没有任何问题。谢谢帮助。默认生成的web应用程序应该在IIS下运行还是需要更改?您不需要更改,但需要在.NET Core 2.0.6 Runtime下安装.NET Core运行时软件包(2个软件包),并同时安装托管这两个软件包的Windows Server。需要更多吗?不需要。请按照我提到的故障排除程序进行操作。谢谢,Simonare。结果证明是文件夹权限问题,应用本身没有任何问题。
    var host =  WebHost.CreateDefaultBuilder(args)
            .UseSetting("detailedErrors", "true")
            .CaptureStartupErrors(true)
            .UseKestrel()
            .UseStartup<Startup>()
            .Build();
    
    <RuntimeIdentifiers>win10-x64;win7-x64</RuntimeIdentifiers>