- PR -

web.config を配置してある仮想フォルダor絶対フォルダを知るには?

1
投稿者投稿内容
adelieworks
会議室デビュー日: 2002/05/25
投稿数: 12
投稿日時: 2003-11-05 10:11
ASP.NET Webアプリで、web.config を配置してある仮想フォルダor絶対フォルダ、言い替えると、Webアプリのルートフォルダを知る手段はあるでしょうか。

appRoot
+-- sub

というフォルダ構成で、appRoot/sub/webform.aspx のコードから、appRoot/data.xml を Load したいのです。
いまは、web.config の appSetting セクションに、「このアプリのルートURL」を手書きで設定しているのですが、本プロジェクトは、同一のコードをいろいろなURLに配置するという特徴を持っているため、毎回、web.config を書き直しています。
何か情報をお持ちの方がいらっしゃいましたら、ご教示頂ければ幸いです。


[ メッセージ編集済み 編集者: adelieworks 編集日時 2003-11-05 10:23 ]
小野@どっとねっとふぁん
ぬし
会議室デビュー日: 2001/10/30
投稿数: 402
投稿日時: 2003-11-06 10:07
Server.MapPath("/");

でルートフォルダの位置とれませんでしたっけ?

#未確認です。
adelieworks
会議室デビュー日: 2002/05/25
投稿数: 12
投稿日時: 2003-11-06 22:35
引用:

小野@EACさんの書き込み (2003-11-06 10:07) より:
Server.MapPath("/");
でルートフォルダの位置とれませんでしたっけ?



たしかにこれだと、サイトの"ルートフォルダ"は取れるのですが、今回ほしいのは、サイトではなくアプリ単位でのルートでして。

例えば、
c:\wwwroot
 +--approot
  +--bin
  +--sub
というフォルダ構成だとして、approotにIISにてアプリケーションを設置、Web.configも同フォルダに配置することになりますが、このとき、subフォルダ内にあるX.aspxのページクラスのコード中から、そのページ自身の属するアプリのルート、すなわち、"c:\wwwroot\approot"を取得したいわけです。
Server.MapPath("/")だと、"c:\wwwroot"が取れてしまいます。
fatmoon
会議室デビュー日: 2003/11/07
投稿数: 2
投稿日時: 2003-11-07 20:29
fatmoon@初書き込み です。

ずばり、

Server.MapPath( Request.ApplicationPath )

ではどうでしょうか?
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2003-11-07 20:51
adelieworksさん、こんばんは。

Request.PhysicalApplicationPath で取得出来ますよ。
adelieworks
会議室デビュー日: 2002/05/25
投稿数: 12
投稿日時: 2003-11-07 22:41
皆さん返信ありがとうございます。
"AppPath"とか"VirtualPath"とか"BaseURL"とかで検索していたから見つからなかったようです。"App"じゃなくて、ちゃんと"Application"とフルスペルで探すべきでした。

Requestプロパティ(HttpRequestクラス)のプロパティとして在った、というのも意外でした。クライアントからの"要求"の中に、Webアプリのルート情報が含まれているというのは想像もつきませんでした。

ご教示頂いた皆様、どうもありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)