我在Windows 2003上的IIS 6中有一个带有子虚拟应用程序的.NET站点。网站结构如下所示:
工作正常。现在我正在尝试从.NET 3.5升级到4.0。当运行虚拟应用程序中的页面时,我在web.config中的httpmodule上出现例外:
异常类型:ConfigurationErrorsException异常消息:可以 不加载文件或程序集'MyWebSite.dll,Version = 1.0.0.0, 文化=中立'或其依赖性之一。系统找不到 指定的文件。
MyWebSite.dll位于我网站的bin文件夹中。程序集绑定日志条目包含此报告:
日志:Appbase = file:/// D:/ MyWebSite / Common / Templates /
日志:初始PrivatePath = D:\ MyWebSite \ Common \ Templates \ bin
所以它正在寻找虚拟应用程序目录中的bin文件夹而不是根站点文件夹。它似乎不适用于.NET 3.5。更改内容,如何使模板虚拟应用程序找到正确的bin文件夹?我宁愿不为bin文件夹中的每个.dll提供探测信息。谢谢你的帮助。
答案 0 :(得分: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 for non-Wow64)并将其设置为你可以在这里阅读更多相关信息: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