2009-03-06 33 views
57

HTTP POSTおよびGET要求に対してASP.NETクラシック(ASMX)Webサービスを有効にしたいとします。私は、これはのmachine.configまたはweb.configファイルに... ...HTTP POST/GET要求に対してASP.NET ASMX Webサービスを有効にする

<webServices> 
    <protocols> 
     <add name="HttpGet"/> 
     <add name="HttpPost"/> 
    </protocols> 
</webServices> 

を追加することによって、マシンやアプリケーションのレベルで行うことができます実現しています。私の質問は、アプリケーションやマシンごとではなく、WebサービスやWebメソッドのレベルごとにHTTP POSTとGETリクエストを有効にできますか?

私のWebサービスは、net 3.5sp1を使用してC#で書かれています。

答えて

45

あなたのメソッドでUseHttpGetを宣言してみてください。

[ScriptMethod(UseHttpGet = true)] 
public string HelloWorld() 
{ 
    return "Hello World"; 
} 
+1

それぞれの属性を入れずに、特定のサービスのすべてのメソッドに対して有効にする方法はありますか? – JohnIdol

+0

申し訳ありませんが、それを行うオプションがないようです – tanathos

+0

私はあなたがクラスを飾ることができると思います。確かにthoght –

37

実際、私はこれをやや奇妙な方法で見つけました。 web.configにプロトコルを追加しますが、location要素内に追加してください。

<location path="YourWebservice.asmx"> 
    <system.web> 
    <webServices> 
     <protocols> 
     <add name="HttpGet"/> 
     <add name="HttpPost"/> 
     </protocols> 
    </webServices> 
    </system.web> 
</location> 
+0

'location'部分は必要ありません。 'system.web'はメイン' 'ノードの中に直接存在します。 – vapcguy

関連する問題