1

ASP.NET で安らかなサービスを実装したいと考えています。.Net 2.0 および IIS 5 以降と互換性を持たせたい。ASP.NET MVC または REST スターター キットを使用しないように制限されています。インターネットで読んだことで、HTTPHandlers を使用して実装できることがわかりました。問題は、リクエストが POST リクエストとして送信されることです。そして、URLを次のようにしたい:

http://abc.com/MyService/MyMethod1/ および http://abc.com/MyService/MyMethod2/

これに対する回避策はありますか?

ありがとう、ヴァミップ

4

3 に答える 3

1

最適なオプションは、URL 書き換えを使用することです。これは、IIS5 では重要です。私が知っている方法は次のとおりです。

方法 1 - ISAPI フィルター

これらは、着信要求を操作できるようにする低レベルのモジュールです。これらの 1 つをプログラミングするのは面倒で、デバッグが困難です。この方法を使用する場合は、ISAPI_Rewriteのように既にビルドされているものを使用することをお勧めします。

方法 2 - IHttpModule

これらは、アプリケーションから簡単に追加/削除できるマネージ ASP.Net モジュールです。繰り返しますが、UrlRewriter.NETのような事前構築済みのコンポーネントを使用することをお勧めします。これらのいずれかを使用する際の問題 (BrainLy が言及しているように) は、IIS 5 を構成して、次のようにすべての着信要求を ASP.Net にマップする必要があることです (リンク)。

  1. IIS を開き、[ホーム ディレクトリ] タブに移動します</li>
  2. 「設定」を選択</li>
  3. [追加] をクリックし、[実行可能ファイル] ボックスに「C:\WINNT\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll」と入力します。ファイル拡張子には「.*」を入力します。最後に、「ファイルの存在を確認する」がチェックされていないことを確認してください。

注目すべき興味深い点の 1 つは、ASP.Net 自体が ISAPI モジュールであることです:)

これらのツールのいずれかを使用して URL を操作できるようになると、RESTful URL を簡単に書き換えて、default.aspx ページ (または使用する任意のハンドラー) で処理できるようになります。

于 2011-01-19T16:52:05.410 に答える
1

IIS 7.0 以降のみの制限を許可できる場合は、URL Rewrite http://www.iis.net/download/URLRewriteを使用して非常に簡単に行うことができます。

IIS 5 以降をサポートする必要がある理由をお聞かせください。これは 11 年前のテクノロジであり、人々がこれらのプラットフォームから離れて、より新しいバージョンに移行することを願っています。また、これらのプラットフォームの一部のサポートは間もなく終了することにも注意してください。

問題が Windows XP を実行している開発者である場合、IIS Express にはバージョン 7.5 以降の機能が含まれており、Windows XP 以降のすべてのプラットフォームで使用できることを指摘します。

于 2011-01-18T18:15:17.507 に答える
0

IIS 5では、IISで追加の構成を行わないと、ASP.NET以外のファイル拡張子を処理できないため、これを行うのは難しいと思います。つまり、.aspxなどで終わるURLに制限されます。例のようなURLを処理するには、ASP.NETをマップしてIISのすべてのURLを処理するか、ある種のURL書き換えを実装するか、ある種のハッキー404リダイレクトを導入する必要があります。 。

正しいマッピングを設定したら、IHttpHandlerを接続できますが、着信要求を自分で解析して、/ MyService /MyMethod1/と/MyService/MyMethod2/のどちらであるかを判断する必要があります。メソッドが単純な場合、正規表現を使用してこれを行うのは簡単です。

このような単純なハンドラーから始める必要があります。

于 2011-01-18T16:27:40.567 に答える