- - PR -
IEでWebサービス呼び出しでInvalidOperationExceptionエラー
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-06-08 17:16
現在ある参考書を参照しながらWebサービスを勉強しています。asmxファイルを作成して仮想ディレクトリに格納し、ブラウザ(IE)でURLを入力して実行結果を参照したかったのですが、InvalidOperationException「要求形式が認識されません。」との例外が発生します。
以下がソースとブラウザで表示させようとしたURLです。 初歩的な間違いでしたらすいません。ご教授お願いいたします。 '* .asmx ************************************************** <%@ WebService Class="Service1" %> Imports System.Web.Services Class Service1 <WebMethod> _ Public Function Add(ByVal x As Integer, _ ByVal y As Integer ) _ As Integer Dim wk As Integer wk = x + y Return wk End Function End Class '* URL ************************************************** http://localhost/Service1.asmx/Add?x=100&y=200 |
|
投稿日時: 2005-06-08 19:32
初期表示のサンプルに書かれていると思いますが、
GET要求ではなくPOST要求にしないとダメなんでは? _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ |
|
投稿日時: 2005-06-09 18:21
書き込みが遅れましてすいません。
前回記述していたGET要求のURLは参考書の記述のコピーです。 しかし、Jubeiさんのスレッド内容をみてURLをちぎっていくと >http://localhost/Service1.asmx で、メソッド名にリンクが張られた画面が表示され、そのリンクに飛ぶと >http://localhost/Service1.asmx?op=Add メソッド引数が入力できるテキストボックスと「起動ボタン」がついている画面が 表示されました。 引数を入力して起動ボタンを押下すると、参考書と同じ画面(下記内容)が表示されました。 *内容********************************* <?xml version="1.0" encoding="utf-8" ?> <int xmlns="http://tempuri.org/">300</int> ************************************** ありがとうございました。 //////////////////////////////////////////////////////////// しかし、画面遷移後のURLはPOSTなので >http://localhost/taniguchi/Service1.asmx/Add と、なっています。 参考書にはブラウザでの実行結果画面がプリントされていますが、URLは >http://localhost/Service1.asmx/Add?x=100&y=200 となり、冒頭にも「HTTP-GETで実験してみます」とあります。 POST,GETの問題なのか、まさかVS.NETのバージョンが関係 してるのではと思いmsdnサイトを調べたところ 「ブラウザから XML Web サービスへのアクセス」http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconaccessingwebservicesfrombrowser.asp で、HTTP-GETで参考書のようなテスト方法がありました。 なぜGETでの実行ができないのでしょうか。 |
|
投稿日時: 2005-06-10 08:41
HTTP GET を受け付けるように設定していなければ
受け付けなかった気がします。 デフォルトがどちらになっているかは忘れましたが、 うちの machine.config では HttpSoap1.2 と HttpSoap が 設定してあります。 |
|
投稿日時: 2005-06-10 09:42
ありがとうございます。
確かにmachine.configのwebServices要素のprotocols要素は下記のような状態になっていました <add name="HttpSoap1.2"/> <add name="HttpSoap"/> <!--<add name="HttpPost"/> --> <!--<add name="HttpGet"/> --> HTTP-GETのみの設定にするとGET要求で実行ができるようになりました。 |
1