0

メンバーシップ データベース サービス (iMIS) が提供する Web サービスを利用しようとしています。

以下は、Web サイトで WSDL を使用した例です。

HttpClient client = new HttpClient();
client.BaseAddress = new Uri("http://www.atsol.org/webservices_demo/wscontacts.asmx/");
var c = new FormUrlEncodedContent(new[] 
{
    new KeyValuePair<string, string>("Username", "myname"),
    new KeyValuePair<string, string>("Password", "mypassword"),
    new KeyValuePair<string, string>("UpdateLoggedInDate", "false")
});
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml"));
LoginResultsWithData r = response.Result.Content.ReadAsAsync<LoginResultsWithData>().Result;

正常に動作しますが、最後の行に到達して XML を「LoginResultsWithData」オブジェクトに逆シリアル化しようとすると、名前空間でエラーが発生します。

行 1 位置 163 のエラー。名前空間 ' http://schemas.datacontract.org/2004/07/myProjectName.iMISContactService ' から要素 'LoginResultsWithData' を期待しています.. 名前 'LoginResultsWithData' の名前空間 ' http:/ /www.atsol.org/wsContacts/ '.

これは、Web サービスからの応答です。

HTTP/1.1 200 OK
Date: Wed, 17 Jul 2013 19:48:59 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 4.0.30319
Cache-Control: private, max-age=0
Content-Type: text/xml; charset=utf-8
Content-Length: 1202

<?xml version="1.0" encoding="utf-8"?>
<LoginResultsWithData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.atsol.org/wsContacts/">
  <ResultCode>#</ResultCode>
  <ResultMessage>Succeeded</ResultMessage>
  <ID>####</ID>
  <InstituteContactId>####</InstituteContactId>
  <IsMember>false</IsMember>
  <IsInstitute>false</IsInstitute>
  <CustomerTypeCode>S</CustomerTypeCode>
  <BillingCategory />
  <ContactStatusCode>A</ContactStatusCode>
  <PaidThruDate>2099-12-31T00:00:00</PaidThruDate>
  <FullName>My Name</FullName>
  <FirstName>My</FirstName>
  <LastName>Name</LastName>
  <Informal>My</Informal>
  <Roles />
  <IMISCookies>
    <IMISCookie>
      <CookieName>ASP.NET_SessionId</CookieName>
      <CookieValue>io0um25qmae35wiogsjgwrsq</CookieValue>
    </IMISCookie>
    <IMISCookie>
      <CookieName>Login</CookieName>
      <CookieValue>34E1A645EB3F4AE693EDEE665D2328264C7F064B366DE16286DF83E6D79AF7663294E1275DA22703506F3E8E3F89D02C27DAB30F2D6A4A43A3AF1A6D0DCD1A2AFDFD18073E6187111430228892A9C7EC</CookieValue>
    </IMISCookie>
  </IMISCookies>
</LoginResultsWithData>

あなたが尋ねる前に、いいえ、私は Web サービスを台無しにすることはできません。ヘルプ?!

4

1 に答える 1

0

サービス プロバイダーが wsdl を更新した可能性があります。投稿された応答が、http: //www.atsol.org/webservices_demo/wscontacts.asmx?WSDL の WSDL で指定されたタイプと一致しているように見えるため、クライアント マシンには再生成が必要です。

エラー メッセージに基づいて、Web サービス クライアント機構のどこかで、正しくない名前空間 ' http://schemas.datacontract.org/2004/07/myProjectName.iMISContactService ' が応答要素 'LoginResultsWithData' に関連付けられています。

WSDL とポストされた応答は、名前空間 ' http://www.atsol.org/wsContacts/ 'に関連付けられた LoginResultsWithData を示します(wsdl:types セクションでは、これは targetNamespace="http://www.atsol. schema 要素の org/wsContacts/" 属性。応答では、これは LoginResultsWithData 要素の属性 xmlns="http://www.atsol.org/wsContacts/" で示されます)。

于 2013-08-12T19:14:21.753 に答える