2009-07-27 8 views
3

Ich habe eine ASP.NET-Webanwendung, die 3 Projekte hat, um 3 verschiedene Schichten der Anwendung (UI, BL und Datenzugriff) zu behandeln. Wenn ich veröffentliche Das UI-Projekt ein Verzeichnis namens Precompiled wird in der Lösung erstellt und Dateien werden dort verfügbar sein. Dieser Ordner wird über ein BIN-Verzeichnis verfügen, das die erforderlichen DLLs (referenzierte DLLs und DLL des Business Layer-Projekts & DLL des DataAccessLayer-Projekts) enthält. Das funktioniert gut. NOW Ich möchte dieselbe BL- und DataAccess-Ebene verwenden, um mehrere Benutzeroberflächen (Websites) auszuführen. Ich möchte Website namens websiteA, WebSiteB, MyWebSite1, ShyjusWeb etc .... Ich möchte virtuelle Verzeichnis für jede dieser erstellen. SO habe ich eine Website erstellt und darunter erstellte ich virtuelle Verzeichnisse für die oben genannten Sites. Ich habe index.asp (des UI-Projekts, das ich in meiner Lösung hatte) in den Ordner, der auf ein virtuelles Verzeichnis mappt und wenn ich versuche, zuzugreifen Ich bekomme einen Fehler wie folgtASP.NET-Bereitstellung: Cant Zugriff Bin Ordner Assemblies aus dem virtuellen Verzeichnis unter der Site

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 

Es scheint wie die Seite nicht in der Lage, auf die erforderlichen DLLs aus dem BIN-Ordner zuzugreifen. Gibt es einen Weg, dies zu lösen? IIS 6.0 Ich spiele mit. Meine Ordnerhierarchie ist jetzt wie folgt Stammordner -> Bin-Ordner, Verschiedene UI-bezogene Dateien & Ordner, Ein Ordner, der jetzt in ein virtuelles Verzeichnis (WebSiteA) konvertiert wird. In WebSiteA habe ich inde.aspx, das ist die gleiche Kopie wie der Index.aspx im Stammordner verfügbar.

Ich brauche die gleiche Website (Kopie mit nur ein paar CSS-Änderungen für jede Website). Wenn ich den Bin-Ordner von meinem Stamm kopieren und ihn in jedem der virtuellen Verzeichnisordner zusammen mit dem index.aspx einfügen, funktioniert es. Aber ich möchte nicht den gleichen BIN-Ordner für jede Site haben. Ich möchte nur einen BIN haben, die sich im Stammordner

Vielen Dank im Voraus

Antwort

0

Fügen Sie einen Verweis auf Ihre BL und DAL-Projekte von der Website-Projekt sein sollte, die Sie erstellt

+0

Wenn ich dies tun, muss ich es aus der Söldungsdatei (Visual Studio IDE) machen Wie wäre es mit dem Erstellen von virtuellen Verzeichnissen auf IIS? – Shyju

+0

Warum willst du es so machen? Ich denke, eine Website sollte (gebaut werden dann bereitgestellt) und nicht (erstellt und bereitgestellt in einem Schritt durch Hinzufügen eines IIS virtuellen Verzeichnisses). Ist es das, was du versuchst? –

+0

Ich schätze, und ich meine, wenn Sie es WIRKLICH so machen wollen, wie Sie es beschrieben haben, dann glaube ich nicht, dass Sie im Handumdrehen die gleichen DLLs referenzieren können, aber durch Kopieren der Bin ein ähnliches Ergebnis erzielen könnten Ordner zu sowie die index.aspx Seite. Aber ich würde nicht so empfehlen –

1

ich denke, man sich in einem Wirrwarr bekommen haben. Die von Ihnen erwähnte Datei (App_Web_lls0_qzf) scheint die kompilierte DLL für die erste angegebene UI/BL/DAL-Kombination zu sein, und ich bin leider durch Ihre Beschreibung Ihrer Ordnerstruktur verwirrt.

Ich bin mir nicht sicher, ob Sie mehrere Kopien der gleichen Website oder ob jede Website anders ist.

Haben Sie nicht versucht, die 4 Websites zu erstellen und auf die gängigen BL- und DAL-Projekte zu verweisen?

Denken Sie daran, dass Ihre Dateistruktur und Ihre IIS-Struktur nicht identisch sein müssen, d. H.

  • c: \ Sites \ website1
  • c: \ Sites \ Website2
  • c: \ Sites \ Website3
  • c: \ Sites \ Website4

und in IIS

  • Website des Masters
  • Web1

  • Web2

  • Web3

  • WEB4

Erinnern Sie sich an die Vererbung! - DLLs und Referenzen in Ihrer Master-Website werden in Ihre virtuellen Verzeichnisse übernommen. Sie können auch erwägen, Web-App-Pools für jede Website zu erstellen.

+0

Wenn ich das Web1/Web2 als ein Projekt unter meiner Lösung hinzufügen. Es wird funktionieren. Ist das der richtige Weg, um dies anzugehen? Kann ich nichts mit IIS machen? – Shyju

+0

Mehrere Kopien der gleichen Website (gleiche Funktionalität). Aber die CSS-Stile jeder Website werden unterschiedlich sein. Ich werde für jede Website verschiedene CSS-Dateien haben. – Shyju

Verwandte Themen