3

我有一个父应用程序托管在我网站的根文件夹中。这是一个 .NET 4.0 应用程序,应用程序池显然设置为 4.0。

我想在以下位置配置子应用程序:

/博客

这是一个 .NET 2.0 应用程序(它是 BlogEngine.NET)。我创建了一个名为“blog”的新虚拟目录,将其指向适当的目录,将其转换为应用程序并将其放入设置为 .NET Framework 2.0 的自己的应用程序池中。

我编辑了父 web.config 并添加了:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
      <configSections>
         <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
    </configSections>
  ....entire web.config basically...
  </location>
</configuration>

就在元素之后。但是,当我访问http://localhost/blog时,出现以下错误:

无法读取配置部分“configSections”,因为它缺少部分声明

任何人都知道这里发生了什么或我可能遗漏了什么?

4

2 回答 2

2

不幸的是,这是 IIS 处理虚拟目录的方式的失败。您的父应用程序的 web.config 仍会被读取,即使它不在子应用程序中。在经历了几天的挫折、SO 问题和论坛帖子之后,我尝试将 4.0 应用程序作为 3.5 应用程序的子级嵌套,我最终得出的结论是,麻烦大于价值。

于 2011-06-17T04:17:23.947 回答
0

你为什么不把 BlogEngine 升级到 Asp.net 4.0 呢?

下载 BE 2.0 Web 版本,在 Visual Studio 中打开它会询问“您想要 4.0 吗?” 说是,然后它会为您定位 web.config。

然后,您可以将新的 web.config 上传到您的服务器。

如果您有旧的 BE 版本,那么您可能希望将其升级到最后一个稳定版本。

于 2011-06-18T03:45:27.377 回答