- PR -

要求形式が認識されません

1
投稿者投稿内容
momomo
会議室デビュー日: 2006/01/12
投稿数: 6
投稿日時: 2006-01-12 01:36
元記事と似たような現象が発生して悩んでいます。

[環境]
Win XP SP2
.NET Framework Version:1.1.4322.2300
VS.NET 2003

[質問内容]
IEを起動してアドレスバーに"URL:http://hostname/ProxyService/index.asmx/HelloWorld"と入力すると、下記のような[エラー]が表示されます。
また、VS.NET 2003からデバッグして「起動」ボタンを選択するとこのようなエラーは表示されず、HelloWorldのサンプルが動作します。
この二つの操作にはどのような違いがあるのでしょうか?
また、このエラーが発生する原因としてはどのようなものが考えられるでしょうか?

なぜこのような質問をするかといいますと、
別途クライアントアプリを作成してWebServiceに接続したところ、クライアントアプリとWebServiceを同じマシンで動作させたところ、WebServiceは期待通りの動作をするのですが、クライアントアプリをWebServiceと別のマシンで動作させると、500 部エラーが発生する、という現象が発生したためです。
このクライアントアプリは、WebServiceに対して
POST http://hostname/ProxyService/index.asmx/HelloWorld
といった形で要求を投げています。
クライアントがどこから接続するかによってサーバの動作が変わる原因が思いつかず、行き詰まっている状況です。
原因調査のためにどこをチェックすればよいか等、お知恵を貸していただけますでしょうか。
ちなみに、元記事のように以下の内容も確認してみましたが、「HTTP エラー メッセージを簡易表示する」チェックを外しても元記事のようなエラーが表示されず(エラーの内容には変化なし)異なる現象ではないのではないかと考えています。
http://support.microsoft.com/default.aspx?scid=840943


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

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

例外の詳細: System.InvalidOperationException: 要求形式が認識されません。

ソース エラー:

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

スタック トレース:


[InvalidOperationException: 要求形式が認識されません。]
System.Web.Services.Protocols.WebServiceHandlerFactory.CoreGetHandler(Type type, HttpContext context, HttpRequest request, HttpResponse response) +388
System.Web.Services.Protocols.WebServiceHandlerFactory.GetHandler(HttpContext context, String verb, String url, String filePath) +94
System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, String path, String pathTranslated, Boolean useAppConfig) +699
System.Web.MapHandlerExecutionStep.System.Web.HttpApplication+IExecutionStep.Execute() +95
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +173




--------------------------------------------------------------------------------
バージョン情報 : Microsoft .NET Framework バージョン :1.1.4322.2300; ASP.NET Version:1.1.4322.2300
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2006-01-12 10:27
既定では外部からのHttpGetやHttpPostプロトコルは無効になっています。

web.configで以下のように書けば有効になります。
コード:
<webServices>
     <protocols>
       <add name="HttpPost" />
       <add name="HttpGet" />
     </protocols>
</webServices>



ASP.NET を使用して作成する XML Web サービスの構成オプション
http://www.microsoft.com/japan/msdn/library/ja/cpguide/html/cpconConfigurationOptionsForASPNETWebServices.asp
momomo
会議室デビュー日: 2006/01/12
投稿数: 6
投稿日時: 2006-01-12 16:36
ありがとうございます。
web.configの記述を変更することによりうまく動作するようになりました。
1

スキルアップ/キャリアアップ(JOB@IT)