none
asmx Webサービスでの例外処理 RRS feed

  • 質問

  • asmx Webサービスでの例外処理についての質問です。
    現在、.NET4 でASP.NET WebFormsアプリケーションを作っています。
    このアプリケーションのAjax処理は、asmxサービスを使います。

    今困っているのが、asmxサービスのWebMethodで起きた、ハンドルされなかった例外の扱いです。
    aspxのページで発生した例外は、global.asaxのApplication_Errorか、
    あるいはHttpモジュールを作るなどして、一か所に集約して処理(ログ出力とか)するつもりなのですが、
    asmxで起きた例外をこれらで捕えることができません。

    WebMethod1つ1つにtry-catchを設けるのはあまりやりたくないので、どうにかして集約管理したいのですが、何か良い方法は無いでしょうか。

    なお、下記サイトにASMXの例外処理を集約する方法があったので試したのですが、
    そこの記述「ブラウザからの HTTP-POST による呼び出しに対しては機能しません」の通り、使えませんでした。
    http://blogs.msdn.com/b/nakama/archive/2009/01/18/net-part-3.aspx
    2012年12月18日 4:02

回答

  • .NET 4 の環境上で、しかもAjax関係の処理というならいろいろと提供されているWebサービス向けのフレームワーク(といっていいのかどうか)を使うほうが便利ではないでしょうか。
    WCFとかASP.NET Web API とか。
    ASP.NET MVCでサービスのとこだけつくる、とかもできるでしょうし。


    あおい情報システム株式会社 小野修司(どっとねっとふぁん)

    • 回答としてマーク femp 2012年12月19日 11:50
    2012年12月18日 8:59

すべての返信

  • .NET 4 の環境上で、しかもAjax関係の処理というならいろいろと提供されているWebサービス向けのフレームワーク(といっていいのかどうか)を使うほうが便利ではないでしょうか。
    WCFとかASP.NET Web API とか。
    ASP.NET MVCでサービスのとこだけつくる、とかもできるでしょうし。


    あおい情報システム株式会社 小野修司(どっとねっとふぁん)

    • 回答としてマーク femp 2012年12月19日 11:50
    2012年12月18日 8:59
  • ご助言に従い、WCFについて調べてみたところ、例外処理を集約することができたので、
    WCFを採用することにしました。
    ありがとうございました。
    2012年12月19日 11:50