我有一个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文件夹中
答案 0 :(得分:1)
我认为你已陷入困境。 您提到的文件(App_Web_lls0_qzf)似乎是第一个指定的UI / BL / DAL组合的编译DLL,遗憾的是您对文件夹结构的描述感到困惑。
我不清楚您是否想要同一网站的多个COPIES或每个网站是否不同。
您是否尝试过创建4个网站,并参考常见的BL和DAL项目?
请记住,您的文件结构和IIS结构不必相同,即
并在IIS中
WEB1
WEB2
WEB3
WEB4
记住继承! - 主站点中的DLL和引用将继承到您的虚拟目录中。您可能还希望考虑为每个网站创建Web应用程序池。
答案 1 :(得分:0)
从您创建的网站项目中添加对BL和DAL项目的引用