2011-06-24 12 views

答えて

2

コンテンツタイプが "application/x-www-form-urlencoded"のHTTP POSTとしてASMXが起動されない限り、これらのパラメータはHttpRequestオブジェクトから取得されません。

これは、要求本体が任意のコンテンツタイプ(たとえば、スクリプトサービス(ASP.NET AJAX))である可能性があるため、要求本体にはJSONデータが含まれるためです。 ASMXがSOAP Webサービスとしてアクセスされた場合、要求本体はxml(実際のSOAPエンベロープ)になります。

通常、構成に基づいたASP.NETの実行時は、要求の本文を解析し、実際のメソッドパラメータとともにメソッド呼び出しに変換しようとします。だから正しい方法は、メソッドのコードでメソッドのパラメータをチェックすることです。複雑なアプローチは、リクエストのコンテンツタイプを参照し、それに応じてリクエストボディ(HttpRequest.InputStream)を解析することです。

+0

Thx。私はこのような何かを使用します:http://stackoverflow.com/questions/407902/set-global-variable-for-duration-of-a-request何らかのレジストリで呼ばれたサービスメソッドparamsを格納するために。 – dragonfly

関連する問題