web-dev-qa-db-ja.com

HttpContext.Current.Request.Url.Hostが返すもの

私はパスを持つローカルアプリケーションを持っています:

http://localhost:950/m/pages/Searchresults.aspx?search=knife&filter=kitchen

しかし、これが統合環境またはおそらく本番環境に行くと、次のようになります

http://www.someshopping.com/m/pages/SearchResults.aspx?search=knife&filter=kitchen

いくつかの場合、私はちょうど渡す必要があります:

www.someshopping.com

私のXSLTファイルに、私がこれを使用している機能の1つで:

string currentURL = HttpContext.Current.Request.Url.Host;

これにより、ローカル環境で「localhost」が返されます。同じコードで返されますか:

www.someshopping.com実稼働中(必要ありませんhttp://

チャンスを取りたくないだけです。だから、この愚かな質問をした。

31
Amin Sayed

はい、ブラウザwww.someshopping.comに入力したURLで、URL書き換えを使用していない限り

string currentURL = HttpContext.Current.Request.Url.Host;

戻ります www.someshopping.com

ローカルデバッグ環境と運用環境の違いに注意してください

39
edhurtig

Hostプロパティは、サイトにアクセスするときに使用したドメイン名を返します。だから、あなたの開発環境では、あなたが要求しているので

http://localhost:950/m/pages/Searchresults.aspx?search=knife&filter=kitchen

localhostを返しています。次のようにURLを分割できます。

Protocol: http
Host: localhost
Port: 950
PathAndQuery: /m/pages/SearchResults.aspx?search=knight&filter=kitchen
17
Tejs

これを試して:

string callbackurl = Request.Url.Host != "localhost" 
    ? Request.Url.Host : Request.Url.Authority;

これは、ローカル環境と本番環境の両方で機能します。ローカルはポートnoでurlを使用するため、Url.Hostを使用することはできません。

6
Mahesh