c# - ASP.NET Core 站点未在 IIS 上运行,从命令行运行良好
问题描述
我正在使用 ASP.NET Core 构建一个新的 Web 应用程序,并让它在 Visual Studio 的调试中运行良好。
我已经使用滚动文件接收器添加了 Serilog,它在 Visual Studio 中也运行良好。
然后我发布了应用程序(直接从 VS,也使用 AppVeyor),我已经将它复制到我的网络服务器,在 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_data 权限(以下是日志和标准输出文件夹),对两个用户都相同:
更新
我刚刚安装了 AspNetCore.2.0.7.RuntimePackageStore_x64 和 dotnet-runtime-2.0.7-win-x64 但它仍然无法正常工作。
解决方案
它最终成为我缺少的“托管捆绑安装程序”,其他提到的软件包还不够。安装最新的 2.0.8,然后重新启动就可以了。
现在 Serilog 也在记录。
推荐阅读
- microsoft-graph-api - Microsoft Graph API 中增量查询的状态令牌范围是什么?
- go - Go中打印和打印的区别
- oracle - 防止 Oracle 模式密码过期
- html - 从 HttpWebRequest 下载时缺少某些元素?
- c - 如何在 Alpine 上编译 time.c?
- java - 如何在没有在 linux 中安装 jdk 的情况下运行 JarSigner?
- python - Azure ML 包启动的 Tensorboard 无法正常工作
- javascript - 节点(Express)不启动
- powerbi - 在 Power BI 中创建日历表,其中第一个日期是 4 年前财政年度的开始
- android - 安装失败,原因是:'null' - Android Studio 3.5