0

さまざまな企業/部門向けに、いくつかの異なるイントラネットサイトがあります。多くのコンテンツはそれらの間で一意ですが、いくつかの共有コンポーネントがあります。

現在の展開設定(これは最悪です)では、Visual Studioの[Webサイトのコピー]ツールを使用して、プロジェクトディレクトリとサーバー上の展開場所の間でファイルをコピー/同期します。次に、サーバー上のIISで、共有アイテム(主に.aspxページ)を指す仮想ディレクトリを設定できます。これらのページは、サイトのルートで標準のマスターページを探すため、それぞれのブランドで個別のサイトで正常に機能します。

いくつかの例:

  • / VacationCalendar
  • / PhoneDir
  • /コントロール(.ascxファイル)

本番環境では問題なく動作しますが、いくつかの理由で問題があります。

  • Webサイトのコピーツールは最悪です。
  • これらのコンポーネントは実際にはサイトに存在しないため、ローカルでデバッグすることはできません。
  • このサイトはプリコンパイルされていないため、明らかにパフォーマンスの問題が発生します。

ですから、私はそのナンセンスをすべて捨てて、プリコンパイルされたサイトの使用に切り替えたいと思います。Webデプロイメントプロジェクトはすべてをサーバー上に配置します。これにより、共有コンポーネントをどうするかという問題が発生します。この種の環境では、仮想ディレクトリのトリックを回避できないと確信しています。率直に言って、私は本当にそうしたくありません。

.aspx/.ascxファイルのサブディレクトリと関連するimage/script / CSSリソースをクラスライブラリのように機能させるにはどうすればよいですか?VacationCalendarディレクトリにあるすべてのものを独自のプロジェクト/ソリューションに配置し、各イントラネットサイトにそれをインポートさせ、それらすべてのファイルを/VacationCalendarパスで使用できるようにするとします。大きな頭痛の種なしでそのようなことをする方法はありますか?

ソース管理でアクセスを制限する必要がある可能性が常にあるため、これらすべてのサイトを1つのソリューションにマージする必要はありません。

4

2 に答える 2

0

それは明白ではないのか、それとも私の考えはひどいのか。ともかく:

マスターページを作成し、すべてのサイトをリンクし(プリコンパイル済み)、次のようにします。

  • 特定のディレクトリに保存する各サイトにアップロードする(そのサイトのみ)
  • すべてのファイルを同じディレクトリに保存するマスターページのグローバルアップロード(すべてのユーザーが利用可能)

マスターページには、すべての共有リソースのディレクトリを含めることができ、各サイトには異なるフォルダーを含めることができます。混乱はありません。一部のディレクトリのログインを要求したり、特権を設定したりすることもできます

于 2012-09-14T15:20:25.793 に答える
0

免責事項-私はこれを試していません。

共有ディレクトリを独自のプロジェクトのサブディレクトリとして作成します。これらのプロジェクトを無効なサイトの下のWebサーバーにデプロイしますが、ライブサイトから実際のサブディレクトリにリンクします。

したがって、IISでは

+ - DisabledWebsite
|   |
|   + --- PhoneProject
|         |
|         + --- PhoneDir (at c:/webs/PhoneProject/PhoneDir
|
+ - EnabledSite
    |
    + --- RealProject (bound to http:something.com for example)
          |
          +-- PhoneDir (virtual linked to c:/webs/PhoneProject/PhoneDir

次に、PhoneProjectをコンパイルして、RealProjectとは別にデプロイできます。また、PhoneProject用に別の名前空間を用意し、コンパイルされたdllをRealProject/binディレクトリに配置する必要があります。

于 2012-09-14T23:23:17.253 に答える