1

C++ アプリケーションから .net Web サービス (組み込み対 2008) にアクセスしようとしています。IXMLHttpRequest を使用して service.Following にアクセスしています。そのためのコードは次のとおりです。

 MSXML::IXMLHttpRequestPtr httpReq( _uuidof(MyXMLHTTPRequest));
_bstr_t  HTTPMethod ;
_variant_t noAsync = _variant_t( (bool)false );

HTTPMethod = _bstr_t( "POST" );    
httpReq->open(HTTPMethod ,"webservice address",noAsync);   
httpReq->setRequestHeader("Content-Type", "application/soap+xml");

CString szRequest;
szRequest = "SOAP string";   

VARIANT vRequest;
vRequest.vt = VT_BSTR;
vRequest.bstrVal = szRequest.AllocSysString();

httpReq->send(vRequest);
BSTR strText;

_bstr_t bsResponse = httpReq->responseText;

しかし、web.config ファイルに次の行を追加すると、soap 例外が発生します。なぜそれが起こっているのか、そして解決策は何ですか? WSE を使用しているサービスにアクセスするにはどうすればよいですか?

   <webServices>
  <soapExtensionTypes>
    <add type="Microsoft.Web.Services2.WebServicesExtension, Microsoft.Web.Services2, Version=2.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxx"/>
  </soapExtensionTypes>
</webServices>

次の例外が発生します。

<soap:Fault>
<faultcode>soap:Server</faultcode><faultstring>System.Web.Services.Protocols.SoapHeaderException: Server unavailable, please try later ---&gt; System.Threading.ThreadAbortException: Thread was being aborted.
   at System.Threading.Thread.AbortInternal()
at System.Threading.Thread.Abort(Object stateInfo)
at System.Web.HttpResponse.End()
at  Microsoft.Web.Services2.WebServicesExtension.BeforeDeserializeServer(SoapServerMessage message)
--- End of inner exception stack trace ---</faultstring><faultactor>http: //localhost:2211/WebSite/WebServices/JobLogService.asmx</faultactor></soap:Fault>
4

1 に答える 1

0

SoapHeaderException: サーバーを利用できません。後で試してください

これは問題ではありませんか?おそらく問題は、web.config を変更したときに Web サービスが開始されないことです。

于 2011-01-28T12:58:50.597 に答える