質問

ASP.NETでRESTFULサービスを実装したいと思います。 .NET 2.0およびIIS 5+と互換性があることを望んでいます。 ASP.NET MVCまたはRESTスターターキットを使用しないように制約されています。インターネットで読むことで、httphandlersを使用して実装できることを学びました。問題は、リクエストがPOSTリクエストとして送信されることです。そして、私は次のようになりたいです:

http://abc.com/myservice/mymethod1/http://abc.com/myservice/mymethod2/

これの回避策はありますか?

ありがとう、vamyip

役に立ちましたか?

解決

あなたの最良の選択肢は、URL書き換えを使用することです。これはIIS5では自明ではありません。私が知っている方法は次のとおりです。

方法1 - ISAPIフィルター

これらは、着信要求を操作できる低レベルのモジュールです。これらの1つのプログラミングは、毛むくじゃらでデバッグが困難です。あなたがこのルートに行くなら、あなたはすでにのように構築されたものを使用する方が良いです ISAPI_REWRITE.

方法2 -ihttpmodule

これらは、アプリケーションから簡単に追加/削除できるASP.NETモジュールを管理しています。繰り返しますが、ような事前に構築されたコンポーネントを使用する方が良いです urlrewriter.net. 。これらのいずれかを使用することの問題(脳に言及しているように)は、次のようにすべての着信要求をASP.NETにマッピングするようにIIS 5を構成する必要があるということです(次のように)。リンク):

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

興味深いことの1つは、ASP.NET自体がISAPIモジュールであるということです:)

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

他のヒント

IIS 7.0以上のみの制限を許可できる場合は、URLの書き換えを使用できます http://www.iis.net/download/urlrewrite それをかなり簡単にするために。

IIS 5+をサポートする必要があるのはなぜですか?これは11年前のテクノロジーであり、人々が最近のバージョンを支持してそれらのプラットフォームから抜け出すことを願っています。また、これらのプラットフォームのいくつかのサポートはすぐに終了します。

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

IIS 5では、IISに追加の構成がなければ、非ASP.NETファイル拡張機能を処理できないため、これは難しいと思います。つまり、.aspxなどで終わるURLに限定されています。ISのすべてのURLを処理するためにASP.NETをマッピングする必要があるURLを処理するために、ある種のURL書き換え、または何らかのハッキー404リダイレクトを導入する必要があります。

正しいマッピングを所定の位置に配置したら、ihttphandlerを配線することができますが、入っているリクエストを解析して、/myservice/mymethod1/for/myservice/mymethod2/を使用する必要があります。方法が簡単な場合は、正規表現でこれを簡単に行うことができます。

のようなシンプルなハンドラーから始める必要があります これ 1。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top