我有一个 ASP.NET Blazor 网站,使用在 Windows Server 2022/IIS 10 上运行的 .NET7。
由于我在上传时遇到的一些问题,我决定尝试启用卷影复制,因为这可以避免这个问题。
我关注了这篇博文,并将我的Web.config
文件更改为如下所示......
<?xml version="1.0"
encoding="utf-8"?>
<configuration>
<location path="."
inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore"
path="*"
verb="*"
modules="AspNetCoreModuleV2"
resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet"
arguments=".\MyWebSite.dll"
stdoutLogEnabled="false"
stdoutLogFile=".\logs\stdout"
hostingModel="inprocess">
<handlerSettings>
<handlerSetting name="enableShadowCopy"
value="true" />
<handlerSetting name="shadowCopyDirectory"
value="../_ShadowCopyDirectory/" />
</handlerSettings>
</aspNetCore>
</system.webServer>
</location>
</configuration>
但是,这会导致网站无法启动,并返回 500。如果我注释掉或删除该<handlerSettings>
部分,网站就可以正常工作。
查看服务器事件日志会显示一个带有来源IIS AspNetCore Module V2
和以下描述的条目......
无法加载配置。异常消息:
这就是全部的信息了。
在我看来,IIS 似乎无法读取配置文件,这通常是因为 XML 无效,但我已在验证器中检查过它,结果正常。
虽然我不认为事情会发展到这个地步,但_ShadowCopyDirectory
文件夹确实存在,所以这不是问题。我启用了父路径,所以也不应该是问题,尽管正如我所说,我怀疑事情甚至还没有发展到这个地步。
有问题的站点使用的是 .NET 7,它支持此功能,所以这也不是什么问题。我检查了 IIS 日志,但它们没有显示任何加载失败的信息。
有人知道可能出了什么问题吗?或者我可以在哪里找到更多信息?事件日志没有帮助。
答案1
我遇到了同样的问题,删除 web.config 并重新上传后就解决了。简单地覆盖它没有帮助。
答案2
确保您拥有最新版本的 ANCM 和Windows 托管包安装。仅在 .NET 7.0 RTM 之后才使用该名称启用该设置 - 在此之前,只有预览名称有效,如果不支持这些名称,就会web.config
出现错误。
还要确保您的应用程序有权读取 Web 文件夹。这很难做到,但如果您使用的自定义帐户在 Web 根目录中至少没有读取权限,则可能会发生这种情况。
应用程序池和 ASP.NET 运行时启动错误通常会显示在事件日志中,因此请在其中查找有关发生的错误的其他信息。