PHP 環境から C# (実際には Mono) Web サービスにデータを送信しようとしています。奇妙なことに、Web サービスは、ブラウザーの URL (つまり、GET メソッド) で呼び出すと正しく動作します。
ただし、PHP スクリプトから呼び出すと、Mono 側でパラメーターが受信されないことがわかります。
これが私のPHP呼び出しです:
$domoWSHeader->setAuthenticatedToken($resultAuthentification->AuthentificationResult);
$inputHeaders = new SoapHeader("http://tempuri.org/domo", "DomoWSHeader", $domoWSHeader, false);
$result = $soapClient->__soapCall("MyWebServiceMethod", array("idLight"=>$uuid), NULL, $inputHeaders);
Webservices.asmx は次のようになります。
namespace domo
{
public class DomoWSHeader : System.Web.Services.Protocols.SoapHeader
{
public string username;
public string password;
public string authenticatedToken;
}
[WebMethod]
public bool MyWebServiceMethod(int idLight)
{
bool success = false;
//Snip
return success;
}
}
私は何を試しましたか?
メソッドの前に宣言しようとして[System.Web.Services.Protocols.SoapHeader("DomoWSHeader")]
も、動作は変わりませんでした。
web.config
また、ファイルを編集してプロトコルを追加しようとしました。私は C# の世界にまったく慣れていないので、この問題の答えがどこにあるのかわかりません。ここで何が起こっているのかを理解するのを手伝ってくれることを願っています。