2

私はWeb.Routingでいくつかの作業を行っており、これを使用して、基本的に単一のIHttpHandlerによってレンダリングされるサイトへのわかりやすいURLとRestのようなインターフェイスを使用しています。Webフォームはありません。ハンドラーは、すべてのhtml / jsonを生成し、プロセスリクエストの一部として書き込みます。

これは、たとえば/ Sites / Accountingのようなものではうまく機能しますが、サイトルート(つまり「/」)では機能しません。

'default.aspx'(cassiniとiisでうまく機能するためにルートフォルダーに保持している空のaspxファイル)を使用して、空の文字列でルートを登録しようとしました。RouteExistingFilesを明示的にfalseに設定しましたが、ルートURLをヒットしたときに何をしても、default.axpxが開きます。これには、継承元のコードがなく、ヒットしたことを示す単純なh1タグが含まれています。

デフォルトファイルを変更して目的のルートにリダイレクトしたくありません。MVCと同様に、他のルートが見つからない場合に適用される「デフォルト」ルートに相当するものが必要です。

参考までに、以前のバージョンのサイトはWeb.Routingを使用していませんでしたが、rootまたはdefault.aspxの要求を完全にインターセプトできるハンドラーがweb.configで参照されていました。

仕様:ASP.NET 3.5sp1、C#、Webフォームなし、MVCまたはopenrasta。プレーンな古いIHttpHandler。

4

2 に答える 2

0

私自身の問題を修正しました。問題は、統合されたWebサーバー、カッシーニなどです。ルーティングではうまく機能しないようで、デフォルトではdefault.aspxファイルを返すか、欠落している場合はディレクトリリストを表示します。

仮想ディレクトリでIISを使用することは問題なく機能しますが、煩わしいです(コード共有者は、アプリを開くときに新しい仮想ディレクトリを設定する必要があり、自分のIISインスタンスを汚染するため、イライラします。 、または新しいアプリケーションを手動でセットアップして、ライブに存在するようなドメインホストのみのパスを使用できるようにします。

別の方法は、ここに表示されているカッシーニの更新バージョンを使用することです。これは、default.aspxファイルがない場合に機能しますが、VisualStudioと統合する方法はまだわかりません。任意の助けをいただければ幸いですが、回避策があることを考えると、それは大きな優先事項ではありません。

于 2010-04-05T04:33:36.013 に答える
0

これは本当に古い投稿だと思いますが、VS2012を使用して同じ問題が発生したので、念のためここに投稿します。

IIS Expressをインストールし、VisualStudioでIISExpressを使用するようにプロジェクトを設定することで問題を解決しました。問題を解決しました。

于 2012-09-10T11:32:43.407 に答える