ウェブアプリケーションが別のサーバー上の別のアプリケーションとファイルを共有するのを簡単にするために、私はマスターページにベースhrefタグを使用しています。多くの人が発見したように、これはWebフォームのパスを破壊します。フォームアダプタのクラスは動作していますが、URLの絶対パスを取得する方法がわかりません。現在、私のプログラムは、に似て何かを使用するようにハードコードされていますAsp.Net URLの絶対パス
HttpContext Context = HttpContext.Current;
value = "http://localhost" + Context.Request.RawUrl;
それは私が現在、私のローカルIISサーバー上でテストしてることは注目に値するので、私が使用して試したことがたくさんのための奇妙な傾向があります絶対パスにドメイン名が含まれないようにします(私のローカルIISは外部から見えません)。つまり、それは絶対パスではないので、ベースhrefはそれを破壊します。
これを処理する良い方法は、ハードコーディングなしでローカルでも動作しますが、サーバーにアップロードすると正しく動作するようにする方法はありますか?私はサーバー側のコピーで何か別のことをすることを含む何かを避けることを好むだろう。
はい、私はこの情報を得るためにローカルとサーバー上で別々のweb.configファイルを使用できますが、これは醜いものでDRYに違反しています。
わかりませんが、Request.Url.Hostを試しましたか? –