2

asp.net 3.5ではURLを書き換えています

http://www.abc.com/archive/1108/harpersdecember

次へ

http://www.abc.com/article.aspx?docId=78

私はそれを行うためにこのコードを使用しています:

                Context.RewritePath("/article.aspx?docId=78");

ローカルでは問題なく動作しますが、リモート Web サーバーにアップロードすると、上記のページを参照しようとすると 404 が返されます。ローカルでは機能するがリモートでは機能しない理由について何か提案はありますか?

4

3 に答える 3

2

すべての要求が ASP.Net によって処理されるように、リモート サーバーの IIS でワイルドカード マッピングを作成する必要がある場合があります。これを行わないと、末尾に .ASPX がない URL は、URL 書き換えコードを実行しません。

Scott Guthrie のブログに、これ (およびその他の使用理由) についての適切な説明があります。

于 2008-11-26T10:25:27.200 に答える
1

「可能性があります」ではありません - ワイルドカード マッピングを作成する必要があります。Visual Studio は基本的にすべての要求を .net 経由で渡す cassini Web サーバーを使用します。IIS は、マップされた特定の要求 (デフォルトでは .aspx、.asmx など) のみを .net に転送します。

于 2008-11-26T10:40:39.230 に答える
0

運用サーバーにはデフォルトの aspx ページ (つまり、default.aspx) がないように思えます。その場合、リクエストをハンドラーに再ルーティングします。

これを確認する簡単な方法は、ディレクトリを作成してその中に default.aspx ファイルを配置し、ディレクトリ名のみを使用してリクエストを試みることです。それは確かです。

于 2008-12-04T18:20:38.677 に答える