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

问题描述 投票:3回答:2

我有一个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我正在玩。我的文件夹层次结构现在是这样的:

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

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

asp.net iis virtual virtual-directory
2个回答
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应用程序池。


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.