私はSOAPを使ってWebサービスと通信し、エラーを取得しようとしています。この特定の問題について不満は、Webサービスのローカルコピー(はい、私はファイアウォールをオフにしようとした)と完全に正常に動作し、webserviceとクライアントの以前のバージョンで正常に動作するために使用されます。私は(私はこれを行う方法を調べる必要がありますが)クライアントが送信しているものにアクションパラメータを追加することができたと思う。しかし、なぜそれが以前には1つなしで動くことができたのか、非常に不思議です。Soap Post Fail
編集明確化:私は関連するコードは、私はプログラムの旧バージョンと照合し、同じ問題を抱えていたし、関連するコードだったので(それが動作を停止したときに、それが働いていたときとの間で同じだったと思う私が何か微妙なことを逃していない限り)。 I ローカルサーバーでのみ動作しますが、実際のサーバープログラムはローカルコピーとリモートコピーの両方で同じです。私はそれが機能するように変更することができる奇妙な構成設定のいくつかの並べ替えがあると思う。
エラーメッセージ:「有効なアクションパラメータなしでリクエストを処理するためのSoap:ClientUnable。有効なSOAPアクションを提供してください。」
VBクライアントコード
'WEB_SERVICE_URL_CONST = http://site.com/foo.asmx
'domDoc.xml = <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><TestConnection xmlns="http://site.com"/></soap:Body></soap:Envelope>
Dim oXml As New XMLHTTPRequest
oXml.Open "POST", WEB_SERVICE_URL_CONST, False, "\"
oXml.setRequestHeader "Content-Type", "text/xml"
oXml.send domDoc.xml
C#サーバーコード
[WebMethod]
public int TestConnection()
{
return 1;
}
コメントアウトされた行は、実際のバージョンには存在しません。サンプルコードが提供しないコンテキストを提供するために追加された行です。私は値が実行時にあったと言ったものであることを確認しましたが、両方の場所のURLは偽物です。 – Brian