0

私たちの Web アプリケーション (asp.net) では、タブは動的リンクです。リンクは次のように作成されました。

finalUrl = "https://" + Request.Url.Host + "/home.aspx";

リンクは次のようになります。

https://server0/home.aspx

問題は、Web サーバーの名前が server0 でしたが、現在は server1 に変更されていることです。それでも古いサーバー名が表示され続けます。私たちが見逃した場所を指摘してくれる人はいますか?

(etc/hosts には正しい設定があります)

ありがとう!

4

7 に答える 7

1

相対URLを使用していない正当な理由があると思いますか?

于 2009-01-16T23:15:20.857 に答える
0

相対URLを使用しないのにはおそらく正当な理由があります。私は元の開発者ではありません。そして、コードは本番サーバーを含むすべての場所で機能しますが、この1台のマシンです。ただそれの底に行きたいです。

于 2009-01-17T00:13:12.003 に答える
0

鳩、私はそれからいくつかの単純化をしました。タブは、同じマシン上の別の仮想ディレクトリを指します。

ジョン、いいえ、古いホスト名からはアクセスできません。

于 2009-01-16T23:13:34.010 に答える
0

「Request.Url.Host」を参照した時点では、ホスト名が旧サーバーに戻されています。

相対 URL が使用されている場合、ホストが抽出される Metabase.xml に問題があることがわかりました。その後、「Request.Url.Host」の後続の参照に値が反映されます。

于 2009-01-19T17:56:38.417 に答える
0

タグ付けされた asp.net を使用する場合、HttpRequest.ApplicationPathの使用を検討しませんか? (System.Web を使用)

于 2009-01-16T23:05:44.243 に答える
0

古い URL からサイトにアクセスできますか? そのプロパティは、それが存在するサーバーの名前ではなく、入力された URL に基づいています。

于 2009-01-16T23:07:30.217 に答える
0

FireBug for FireFox などのプログラムを使用して、要求ヘッダーを確認します。次に、Web ブラウザーを開き、アプリケーションに移動します。リクエストの値を表示するには、FireBug の [Net] タブをオンにします。たとえば、この Web サイトでは次のように表示されます。

Host stackoverflow.com
User-Agent Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5 (.NET CLR 3.5.30729)
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
...

したがって、Request.Url.Host は「stackoverflow.com」になると思います。

補足として、 ~/ 絶対パス オプションの使用を検討する必要があります。簡単な例を次に示します。

string finalUrl = "~/home.aspx";
Response.Redirect(finalUrl);
于 2009-01-16T23:47:48.653 に答える