2009-07-27 46 views
3

3つの異なるレイヤーのアプリケーション(UI、BLおよびデータアクセス)を処理する3つのプロジェクトを持つASP.NET Webアプリケーションがあります。 UIプロジェクトはプリコンパイルと呼ばれるディレクトリがソリューションに作成され、そこにファイルがあります。このフォルダには、必要なDLL(DataAccessLayerプロジェクトの& DLL)も必要なDLLを保持するBINディレクトリがあります。これはうまくいく.NOw私は複数のUI(ウェブサイト)を実行するために同じBLとDataAcessレイヤーを使いたい。私はwebsiteA、WebSiteB、MyWEbSite1、ShyjusWebなどと呼ばれるWebサイトを持ちたいと思います。これらのそれぞれの仮想ディレクトリを作成したいと思います。だから、私はWebサイトを作成し、その下に上記のサイト用の仮想ディレクトリを作成しました。私はindex.asp(自分のソリューションで持っていたUIプロジェクトの)を1つの仮想ディレクトリにマッピングしているフォルダに入れ、ASP.NETの展開:サイト内の仮想ディレクトリのBinフォルダアセンブリへのアクセス

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と同じコピーです。

私は同じウェブサイトを持っている必要があります。私は私のルートからBinフォルダをコピーしてindex.aspxと一緒に各仮想ディレクトリフォルダに貼り付けるならば、そのworking.But私は各サイトのための同じBINフォルダを持っていたい。私は1つだけのBINを持って、これは、事前

答えて

0

おかげであなたは私はあなたが混乱の中で自分自身を得ていると思います

+0

私がこれを行う場合、私はそれをsolitionファイル(Visual Studio IDE)から実行する必要があります。IIS上で仮想ディレクトリを作成する方法はありますか? – Shyju

+0

どうしてそんなことをしたいのですか?私は、Webサイトは(展開された状態で構築されていなければならない)、構築されていない(IIS仮想ディレクトリを追加することで1つのステップで展開される)べきだと思います。それはあなたがやろうとしていることですか? –

+0

私が推測するとおり、あなたが本当にあなたが記述した方法でそれをやりたいのであれば、あなたは同じdllをその場で参照できるとは思っていませんが、ビンをコピーして同様の結果を得ることができますフォルダとindex.aspxのページを表示します。しかし、私はその方法をお勧めしません –

1

を作成したWebサイトプロジェクトからごBLとDALのプロジェクトへの参照を追加ROOTフォルダ内にある必要があります。 あなたが言及したファイル(App_Web_lls0_qzf)は、最初に指定されたUI/BL/DALの組み合わせに対してコンパイルされたDLLのように見えますが、残念なことにあなたのフォルダ構造の説明で混乱します。

同じサイトの複数のコピーが必要かどうか、またはそれぞれのサイトが異なるかどうかは不明です。

4つのWebサイトを作成して、共通のBLプロジェクトとDALプロジェクトを参照してみましたか?

ファイル構造とIIS構造が同じである必要はないことに注意してください。

  • C:\サイト\ WEBSITE1が
  • C:\サイト\ WEBSITE2が
  • C:\サイト\ WEBSITE3が
  • C:\サイト\ website4が

とで IIS

  • マスターWebサイト
  • WEB1

  • WEB2

  • Web3

  • WEB4

継承を覚えておいてください! - マスターWebサイトのDLLと参照は、仮想ディレクトリに継承されます。 WebサイトごとにWebアプリケーションプールを作成することを検討することもできます。

+0

Web1/Web2を私のソリューションの下でプロジェクトとして追加すると、これはうまくいきます。これが正しい方法です。私はIISで何かしますか? – Shyju

+0

同じサイトの複数のコピー(同じ機能性)。しかし、各サイトのCSSスタイルは異なります。各ウェブサイトに異なるCSSファイルがあります。 – Shyju

関連する問題