无法从ASP.NET部署中的站点下的虚拟目录访问bin文件夹程序集

时间:2009-07-27 09:34:52

标签: asp.net iis virtual virtual-directory

我有一个ASP.NET Web应用程序,它有3个项目来处理3个不同的应用程序层(UI,BL和数据访问)。当我发布UI项目时,将在解决方案中创建一个名为Precompiled的目录,并在那里提供文件。该文件夹将有一个BIN目录,其中包含所需的DLL(引用的DLL和业务层项目的DLL以及DataAccessLayer项目的DLL)。

这很好用。现在我想使用相同的BL和DataAcess层来运行多个UI(网站)。我想拥有名为WebsiteA,WebSiteB,MyWebSite1,ShyjusWeb等网站。我想为每一个创建虚拟目录。所以我创建了一个网站,并在其下创建了上述网站的虚拟目录。我把index.asp(我的解决方案中的UI项目)放在映射到一个虚拟目录的文件夹中,当我尝试访问时,我收到如下错误:

Parser Error 
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately. 

Parser Error Message: Could not load the assembly 'App_Web_lls0_qzf'. Make sure that it is compiled before accessing the page.

Source Error: 


Line 1:  <%@ page language="C#" autoeventwireup="true" inherits="index, App_Web_lls0_qzf" %>
Line 2:  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Line 3:  <html xmlns="http://www.w3.org/1999/xhtml">


Source File: /websiteA/index.aspx    Line: 1 

似乎页面无法从BIN文件夹访问所需的DLL。有什么方法可以解决这个问题吗? IIS 6.0我正在玩。我的文件夹层次结构现在是这样的:

根文件夹 - &gt; Bin文件夹,各种UI相关文件&amp;文件夹现在转换为虚拟目录的文件夹(WebSiteA)。在WebSiteA中,我有inde.aspx,它与根文件夹中可用的index.aspx相同。

我需要拥有相同的网站(每个网站只复制一些CSS更改)。如果我从我的根目录复制Bin文件夹并将其与index.aspx一起粘贴到每个虚拟目录文件夹中,它就可以了。但我不希望每个站点都有相同的BIN文件夹。我想只有一个BIN,它应该在ROOT文件夹中

2 个答案:

答案 0 :(得分:1)

我认为你已陷入困境。 您提到的文件(App_Web_lls0_qzf)似乎是第一个指定的UI / BL / DAL组合的编译DLL,遗憾的是您对文件夹结构的描述感到困惑。

我不清楚您是否想要同一网站的多个COPIES或每个网站是否不同。

您是否尝试过创建4个网站,并参考常见的BL和DAL项目?

请记住,您的文件结构和IIS结构不必相同,即

  • C:\网站\ WEBSITE1
  • C:\网站\ WEBSITE2
  • C:\网站\ WEBSITE3
  • C:\网站\ website4

并在IIS中

  • 主网站
  •   

    WEB1

  •   

    WEB2

  •   

    WEB3

  •   

    WEB4

记住继承! - 主站点中的DLL和引用将继承到您的虚拟目录中。您可能还希望考虑为每个网站创建Web应用程序池。

答案 1 :(得分:0)

从您创建的网站项目中添加对BL和DAL项目的引用