如何使用 CLI 在 IIS 上托管 DotNet Core 6.0 WebAPI 项目?
我正在尝试使用 IIS 服务器在本地托管我的 webapi 项目。我正在使用 VS Code 使用 .NET 6.0 创建我的 webapi。
以下是我采取的步骤:
- 我运行了
dotnetpublish --configuration Release
。这会在“bin\Release\net6.0”下创建文件。 - 我下载了 ASP.NET Core 6.0 运行时 (v6.0.2) - Windows 托管捆绑包。
- 接下来,我使用物理路径“bin\Release\net6.0”在 IIS 中创建了一个网站,并将端口设置为 8084。
现在,当我尝试浏览路径 localhost/8084/api/users 时,它会返回 500 Internal服务器错误。我缺少什么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
感谢@gunr2171,我能够找到解决方案。
问题在于使用用户机密。使用用户机密时,IIS 无法找到 Secrets.json 文件。这导致 IIS 上的应用程序因空引用而失败(通过事件查看器发现这一点)。
我找到的解决方案是 - 出于开发目的,我们可以将 Secrets.json 文件复制粘贴到 IIS 用于托管的物理路径。这让我们可以继续通过 IIS 进行托管,不会出现任何问题。
I was able to find the solution go this, thanks to @gunr2171.
The issue was with using user-secrets. When using user-secrets, IIS is not able to find the secrets.json file. This caused the application at IIS to fail with null reference(Found this through Event Viewer).
A solution that I found to this is - for development purpose, we can copy paste the secrets.json file to the physical path being used by IIS to host. This lets us continue hosting through IIS without issues.
您需要安装此 捆绑,然后重试:)。检查您的 .net core 版本
You need to install this bundle, then try again :). Check your .net core version