0

我在 Windows 2003 上的 IIS 6 中有一个带有子虚拟应用程序的 .NET 站点。站点结构如下所示:

  • MyWebSite(指向 d:\MyWebSite\Versions\1.2)
    • 模板(虚拟应用程序,指向 d:\MyWebSite\Common\Templates)

它工作正常。现在我正在尝试从 .NET 3.5 升级到 4.0。运行来自虚拟应用程序的页面时,我在 web.config 中的 httpmodule 上遇到异常:

异常类型:ConfigurationErrorsException 异常消息:无法加载文件或程序集“MyWebSite.dll,Version=1.0.0.0,Culture=neutral”或其依赖项之一。该系统找不到指定的文件。

MyWebSite.dll 位于我网站的 bin 文件夹中。程序集活页夹日志条目具有以下报告:

日志:Appbase = file:///D:/MyWebSite/Common/Templates/
日志:初始 PrivatePath = D:\MyWebSite\Common\Templates\bin

所以它在虚拟应用程序目录中寻找 bin 文件夹,而不是根站点文件夹。它似乎不适用于 .NET 3.5。发生了什么变化,如何让 Templates 虚拟应用程序找到正确的 bin 文件夹?我宁愿不为 bin 文件夹中的每个 .dll 提供探测信息。谢谢你的帮助。

4

1 回答 1

1

好的,我想我已经解决了这个问题。我错过了我的问题中的几个关键问题。这些错误是针对无扩展路径的请求,应该返回 404 错误而不是被处理。.NET 4 似乎在 IIS 6 中包含一个默认启用的无扩展 url 功能。它通过 ISAPI 过滤器将“/eurl.axd/GUID”添加到 url,以便它由 aspnet_isapi.dll 处理。我必须添加一个注册表 DWORD HKLM\SOFTWARE\Wow6432Node\Microsoft\ASP.NET\4.0.30319.0\EnableExtensionlessUrls (或 HKLM\SOFTWARE\Microsoft\ASP.NET\4.0.30319.0\EnableExtensionlessUrls 对于非Wow64)并将其设置为0. 你可以在这里阅读更多信息:http: //blogs.msdn.com/b/tmarq/archive/2010/06/18/how-to-disable-the-asp-net-v4-0-extensionless- url-feature-on-iis-6-0.aspx

于 2012-11-26T21:12:52.790 回答