none
ASP.NET 2.0 の ASP.NET WEBサービスで、GETメソッドで要求を実行するには? RRS feed

  • 質問

  • お世話になります。

    VS2005 で C#で、ASP.NET WEBサービス ソリューションを作成しました。

    デフォルトで作成されるHelloWorldメソッドを修正して、以下のように、引数を受け取るようにしました。

        public string HelloWorld(string CCC) {
            return "Parameter is " + CCC;
        }

    http://localhost:2240/WebSite2/Service.asmx?op=HelloWorld

    から実行すると、とりあえず動いているようなので、

    これをGetでやってみようと思い

    http://localhost:2240/WebSite2/Service.asmx/HelloWorld?CCC=abc

    とIEで呼び出してみましたところ、以下のエラーが表示されました。

    Getで実行するにはどうすればよろしいのでしょうか?

    '/WebSite2' アプリケーションでサーバー エラーが発生しました。

    要求形式が認識されないため、'/HelloWorld' で URL が 不意に終了しました。

    説明: 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。エラーに関する詳細および例外の発生場所については、スタック トレースを参照してください。

    例外の詳細: System.InvalidOperationException: 要求形式が認識されないため、'/HelloWorld' で URL が 不意に終了しました。

    ソース エラー:

    現在の Web 要求の実行中にハンドルされていない例外が生成されました。障害の原因および発生場所に関する情報については、下の例外スタック トレースを使って確認できます。

    スタック トレース:

    [InvalidOperationException: 要求形式が認識されないため、'/HelloWorld' で URL が 不意に終了しました。]
       System.Web.Services.Protocols.WebServiceHandlerFactory.CoreGetHandler(Type type, HttpContext context, HttpRequest request, HttpResponse response) +617
       System.Web.Services.Protocols.WebServiceHandlerFactory.GetHandler(HttpContext context, String verb, String url, String filePath) +150
       System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig) +401
       System.Web.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +183
       System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +191
    

     

    2007年3月8日 5:53

回答

  • ASP.NET Webサービスのサイトのweb.configにHttpGetの許可のエントリはありますか。
    なければ以下のように追加してみてはどうでしょうか。

    <system.web>

    … … …

        <webServices>

          <protocols>

            <add name="HttpSoap"/>

            <add name="HttpGet"/>

          </protocols>

        </webServices>

    </system.web>

    2007年3月8日 6:15

すべての返信

  • ASP.NET Webサービスのサイトのweb.configにHttpGetの許可のエントリはありますか。
    なければ以下のように追加してみてはどうでしょうか。

    <system.web>

    … … …

        <webServices>

          <protocols>

            <add name="HttpSoap"/>

            <add name="HttpGet"/>

          </protocols>

        </webServices>

    </system.web>

    2007年3月8日 6:15
  • IIJIMAS様

    ご回答ありがとうございます。

    ご教示頂いた対応方法でGETによる実行ができるようになりました。

    大変助かりました。

    2007年3月8日 6:44