2009-07-10 22 views
1

私は、テキストメッセージで人々からの情報を受け取るように私のサイトを設定しています。それが動作する方法は、テキストに数字を付けることで、そのサービスは指定したURLにHTTP POSTを送信します。 asmxファイルはページライフサイクル全体を通らないため、.aspxファイルより優れていると聞いています。しかし、私は.asmxファイルの実行方法を実際に理解していませんし、POST(www.mysite.com/webservice.asmx)を使って呼び出すこともできますか?私は.aspxファイルで動作させることができますが、この作業を行う前に、より良い方法があるかどうかをチェックしたかったのです。.asmxファイルまたは.aspxファイルでリクエストを受信しますか?

あなたの洞察に感謝します!

答えて

7

拡張子はASP.NETの任意のハンドラにマップできますが、デフォルトでは.aspxがページハンドラにマップされ、.asmxがWebサービスハンドラにマップされます。私はあなたが一般的な単純なハンドラを表す.ashxを探していると思います。プロジェクトに1つ追加した後にIHttpHandlerインターフェイスのProcessRequestメソッドを実装するだけです(新しいアイテムの追加->汎用ハンドラ)。

.ashxは、手動でリクエストを処理する場合にうまく機能します。 Webサービス(SOAPなど)を提供したい場合にのみ、.asmxに行ってください。結果として、最良の解決策は、送信するHTTP POST要求の形式に依存します。彼らが固有のプロトコルでPOSTで生データを送信する場合は、.ashxに行ってください。それ以外の場合、標準のRPC(SOAP、XML-RPC、...)プロトコルを使用している場合は、.asmxがおそらく良いでしょう。

+0

どのように私は.ashxを実装しますか?私は考えていません... – Jason

+0

このサイトは良い概要を持っています:http://www.15seconds.com/Issue/020417.htm – rifferte

+0

Visual Studioプロジェクトに「汎用ハンドラ」を追加します。それはテンプレートを作成し、 'context.Request'から読み込んだコードを書き始めるだけで、いくつかのことをします。 –

0

Visual Studioで.asmxファイルを作成します。テンプレートはHelloWorldメソッドで作成する必要があります。好きなブラウザでブラウズすると、さまざまな方法でリクエストを投稿する方法が実際に説明されます。

あなたが言及していない別のタイプがあります:ashx。しかし、あなたのケースでは、Webサービス(asmx)が理にかなっています。

関連する問題