我的目标是将所有 ASP.NET Core 内容放在内容服务器上,并找到了“使用 IIS 服务器构建 Web Farm”学习文档,展示了如何执行此操作,但我遇到了问题。我正在运行 5 个 KVM Windows 2019 Essential VM(ARR、内容、证书、Web1、Web2)服务器。
在 Web1 上测试Blazor 应用程序,我得到了,
HTTP 错误 500.0 - ASP.NET Core IIS 托管失败(进程中)并检查 Windows 日志 |我收到申请了,
无法启动应用程序“/LM/W3SVC/1/ROOT”,错误代码“0x8007023e”。我从 ARR 服务器克隆了所有其他 4 个服务器,从内容/证书服务器中删除 IIS,因此所有服务器都具有相同的 DOTNET 版本和依赖项。在测试 Blazor 应用程序之前,我只有默认的 IIS Web 内容,并且运行良好。
Blazor 内容发布为: 到 Content Server 文件夹: 所有服务器中安装的 dotnet 版本是: 也在所有服务器上运行此命令: 在内容服务器上我运行了此命令,Blazor 应用程序成功显示在浏览器中: 因此,这让我想到了这个问题,Blazor 内容可以从共享文件夹加载吗?如果可以,我还需要更正哪些其他设置才能使其正常工作?
更新: 在阅读了 @Ken Lee 提供的链接中的 @Lemraj 后,我没有想到在发布具有相同时间戳的错误之前检查错误:
我在执行 dotnet.exe 时遇到权限被拒绝的情况。如何纠正这个问题,是否需要在 web.config 或环境中添加绝对路径? dotnet.exe 未随项目一起发布。我认为这会得到许可:
cd %windir%\Microsoft.NET\Framework64\v4.0.30319
caspol -m -ag 1. -url file://CONTENTSERVER/wwwroot/kohanyim/* FullTrust
意外异常:状态:访问是 被拒绝。:"\CONTENTSERVER\wwwroot\kohanyim\dotnet.exe"您可以在事件查看器中看到 IIS AspNetCore Module V2 的此错误,这是权限问题。
请打开IIS管理器>>选择您的站点使用的应用程序池>>单击右侧操作窗格中的“高级设置”>>检查“进程模型”部分下的“身份”。默认情况下,它设置为“ApplicationPoolIdentity”,这应该是推荐的设置。
然后右键单击“wwwroot\kohanyim”文件夹(或事件查看器抱怨的任何文件夹)>>选择“属性”>>转到“安全”选项卡>>单击“编辑”调整权限>>添加适当的权限应用程序池身份为具有权限的用户。