C# ASP.NET核心站点未在IIS上运行,从命令行可以正常工作

C# ASP.NET核心站点未在IIS上运行,从命令行可以正常工作,c#,asp.net-core,iis-10,C#,Asp.net Core,Iis 10,我正在用ASP.NET核心构建一个新的web应用程序,并在Visual Studio中调试它 我使用滚动文件接收器添加了Serilog,这在VisualStudio中也运行得很好 然后我发布了这个应用程序(既可以直接从VS发布,也可以使用AppVeyor),并将其复制到我的web服务器,在IIS中添加了一个站点等 现在我得到了“500-内部服务器错误” 没有日志写入文件系统,甚至标准输出文件也没有。我已经添加了文件夹,我已经添加了IIS_IUSRS帐户和应用程序池帐户的写入权限 还是没有日志 尝

我正在用ASP.NET核心构建一个新的web应用程序,并在Visual Studio中调试它

我使用滚动文件接收器添加了Serilog,这在VisualStudio中也运行得很好

然后我发布了这个应用程序(既可以直接从VS发布,也可以使用AppVeyor),并将其复制到我的web服务器,在IIS中添加了一个站点等

现在我得到了“500-内部服务器错误”

没有日志写入文件系统,甚至标准输出文件也没有。我已经添加了文件夹,我已经添加了IIS_IUSRS帐户和应用程序池帐户的写入权限

还是没有日志

尝试从命令行运行站点效果很好,使用Serilog进行日志记录也很好

这和IIS有什么关系?但是如果没有任何日志,就很难知道问题出在哪里。有什么想法吗

奖金信息:

我已经在服务器上安装了dotnet-sdk-2.1.200-win-x64包

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=".\MySite.dll" stdoutLogEnabled="true" stdoutLogFile=".\app_data\stdout" />
  </system.webServer>
</configuration>
<!--ProjectGuid: B9DE9F34-1A9E-4D35-B6CE-74209A6CB9FA-->

app_数据权限(以下是日志和标准输出文件夹),两个用户的权限相同:

更新


我刚刚安装了AspNetCore.2.0.7.RuntimePackageStore_x64和dotnet-runtime-2.0.7-win-x64,但它仍然不起作用。

我也遇到过类似的错误,但我发现我需要更新的
dotnet SDK运行时安装程序
版本2.0.6+

你可以找到它

安装后重新启动服务器


我希望这对您有所帮助。

它最终成为了我丢失的“托管捆绑包安装程序”,对于其他提到的软件包来说,这是不够的。安装最新版本2.0.8并重新启动成功


现在Serilog也在进行日志记录。

Windows事件日志中有什么内容?上次我遇到这个问题时,它可能会帮助您解决文件系统权限问题。请重新检查应用程序池用户是否确实可以访问这些文件。这是在任何地方都没有写日志的一个主要情况。事件日志中没有任何内容,除非我找错了地方。它应该在哪里?在系统中,我刚刚从IIS-APPHOSTSVC收到有关某个历史文件夹的警告。@SeM:更好的标题?我已经安装了dotnet-runtime-2.0.7-win-x64和AspNetCore.2.0.7.RuntimePackageStore\u x64软件包,但仍然无法工作。我不需要服务器上的SDK来托管,对吗?如果这是问题,web应用程序是否会从服务器上的命令行运行?安装后尝试重新启动服务器。您必须在IIS上创建网站,并在应用程序池中选择“NoManagedCode”,正如我在问题中所写,我已经创建了一个网站等,这就是我所说的。它是.NET核心运行时的一部分:/