2009-07-19 10 views
1

私は同じサーバー上に複数のWebサイトを持っています。私は別のものへのリンクを持っているが、Server.MapPath cantが現在のウェブサイトのルートの「下」にあるように見えるため、相対パスを持つようには見えない。Webルートを超えたServer.MapPath

どのように私のマシン上の1つのウェブサイトが別のウェブサイト上のファイルまたはページを指しているのでしょうか?

答えて

4

おそらく仮想を作成するとこれを解決するのに役立ちます。私は本当にあなたが何をしようとしているのか分からない。

あなたは(つまり、別のウェブサイト)

How To Create a Virtual Directory in Internet Information Services (IIS)

をお使いのマシン上の別の物理パスにマップされているウェブサイト上の仮想パスを作成することができますが、この仮想へのアクセスにMapPathのを使用するときに、あなたは他にアクセスすることができますウェブサイト

更新:

@me:あなたはIISに行い、他のアプリケーションにアクセスするための仮想ディレクトリを作成することができます。最初のアプリケーションから、 'Application2'仮想を作成し、それをC:\ inetpub \ wwwroot \ website2に向けます。

http://www.mywebsite.com/Application2にアクセスすると、他のアプリケーション(C:\ inetpub \ wwwroot \ website2)のファイルが表示されます。

また、Server.MapPathの(」./アプリケーション2" )がCにパスを返します:\のinetpub \ wwwrootの\ WEBSITE2 \

私はそれが役に立てば幸い。

+0

どういう意味ですか? – leora

+0

編集を参照してください。 downvoteのためのブー! – Alex

+0

- これは仮想ディレクトリを使用するのが妥当な解決策に思えました。私は別のWebサイトのディレクトリ構造(他のサーバーでも実行されています)にアクセスするために私が取り組んでいるプロジェクトでこのテクニックを使用したので、なぜ私はそれを考えなかったのか分かりません –

0

絶対URLを明示的に綴ってみませんか?

+0

しかし、それでも私はファイルとして読むことができます。私は基本的にすべてのHTMLを取得し、文字列に入れたい。 – leora

+0

の代わりに、ディスクからファイルを読み込み、httprequestを実行して文字列に入れてください。 – DFTR

0

Server.MapPathメソッドは、URLの物理パスを取得するために使用されます。これは、ファイルへのURLの作成とは関係ありません。たとえあなたが別のWebサーバーのコードから1つのWebサイトの物理的なファイルに到達することができたとしても、そのURLを指定することはできません。

ドメイン間で相対パスを作成することはできません。同じサーバー上に存在する場合でも、相対パスを作成するために使用できるドメインの共通の親はまだ存在しません。

各ドメイン名は、要求を処理するサーバーに到達するIPアドレスを指しており、ドメイン名とはまったく関係がありません。 2つのドメイン名が同じIPアドレスを指していても、同じサーバー上にある必要はありません。また、2つのドメイン名が異なるIPアドレスを指している場合でも、同じサーバーで処理できます。

関連する問題