尝试使用卷影副本时网站无法启动,事件日志中没有有用的信息

尝试使用卷影副本时网站无法启动,事件日志中没有有用的信息

我有一个 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 运行时启动错误通常会显示在事件日志中,因此请在其中查找有关发生的错误的其他信息。

相关内容