我已發送以下wsdl。我使用wsdl.exe生成了C#代理,並且還創建了我的c#網頁。使用Fiddler我已經看過SOAP響應,它包含數據。爲了讓C#程序接受SOAP響應,需要進行哪些修改的指導。請原諒wsdl的格式,我不確定使用哪種格式以獲得最佳結果。調用Java Web Service時C#響應對象包含null
WSDL
<?xml version="1.0" encoding="UTF-8" ?>
<wsdl:definitions xmlns:tns="https://wwf.web.spiritaero.com/tot/moves" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="CreateMoveHistory" targetNamespace="https://wwf.web.spiritaero.com/tot/moves" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
<wsdl:types>
<xsd:schema targetNamespace="https://wwf.web.spiritaero.com/tot/moves" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="CreateMoveHistoryResponse" type="tns:ReturnMessage" />
<xsd:element name="CreateMoveHistoryRequest" type="tns:CreateMoveHistoryContract" />
<xsd:complexType name="CreateMoveHistoryContract">
<xsd:sequence minOccurs="1" maxOccurs="1">
<xsd:element name="FromApplication" type="xsd:string" />
<xsd:element name="ActionName" type="xsd:string" />
<xsd:element name="OrderNumber" nillable="false" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="WorkCenter" nillable="false" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="Zone" nillable="false" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="Building" nillable="false" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="Floor" nillable="false" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="Post" nillable="false" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="SubCode" nillable="false" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="SubId" nillable="false" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="ScanDate" nillable="false" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="AntennaId" nillable="false" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="AntennaDescription" nillable="false" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="PartNumber" nillable="false" type="xsd:string" minOccurs="1" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CreateMoveHistoryFacade">
<xsd:sequence minOccurs="1" maxOccurs="1">
<xsd:element name="FromApplication" type="xsd:string" />
<xsd:element name="ActionName" type="xsd:string" />
<xsd:element name="OrderNumber" nillable="false" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="WorkCenter" nillable="false" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="Zone" nillable="false" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="Building" nillable="false" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="Floor" nillable="false" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="Post" nillable="false" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="SubCode" nillable="false" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="SubId" nillable="false" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="ScanDate" nillable="false" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="AntennaId" nillable="false" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="AntennaDescription" nillable="false" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="PartNumber" nillable="false" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="ReturnCode" nillable="false" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="ReturnMessage" nillable="false" type="xsd:string" minOccurs="1" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ReturnMessage">
<xsd:sequence minOccurs="1" maxOccurs="1">
<xsd:element name="Message" nillable="false" type="xsd:string" minOccurs="1" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
<wsdl:message name="createMoveHistoryResponse">
<wsdl:part element="tns:CreateMoveHistoryResponse" name="createMoveHistoryResponse" />
</wsdl:message>
<wsdl:message name="createMoveHistoryRequest">
<wsdl:part element="tns:CreateMoveHistoryRequest" name="createMoveHistoryRequest" />
</wsdl:message>
<wsdl:portType name="CreateMoveHistoryPort">
<wsdl:operation name="createMoveHistory">
<wsdl:input message="tns:createMoveHistoryRequest" />
<wsdl:output message="tns:createMoveHistoryResponse" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="CreateMoveHistorySoap" type="tns:CreateMoveHistoryPort">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="createMoveHistory">
<soap:operation soapAction="https://wwf.web.spiritaero.com/tot/moves/CreateMoveHistory" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="CreateMoveHistory">
<wsdl:port binding="tns:CreateMoveHistorySoap" name="CreateMoveHistory">
<soap:address location="http://pc790503.corp.spiritaero.com:8080/tot/moves?action=CreateMoveHistory" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
提琴手
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header/>
<soapenv:Body>
<ReturnMessage xmlns="https://wwf.web.spiritaero.com/tot/moves">
<Message>Successful</Message>
</ReturnMessage>
</soapenv:Body>
</soapenv:Envelope>
C#代碼生成響應
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="https://wwf.web.spiritaero.com/tot/moves")]
public partial class CreateMoveHistoryResponse {
private string messageField;
/// <remarks/>
public string Message {
get {
return this.messageField;
}
set {
this.messageField = value;
}
}
}
C#代碼調用Web服務
CreateMoveHistory proxy;
CreateMoveHistoryRequest cmhRequest;
CreateMoveHistoryResponse msg;
....
msg = new CreateMoveHistoryResponse();
proxy = new CreateMoveHistory();
cmhRequest = new CreateMoveHistoryRequest();
cmhRequest.OrderNumber = "12345";
cmhRequest.Zone = "2";
cmhRequest.Building = "297F";
cmhRequest.Floor = "1";
cmhRequest.Post = "XX";
msg = proxy.createMoveHistory(cmhRequest);
問候,
D.富勒
http://stackoverflow.com/questions/5460107/soap-xml-response-received-but-not-populating-response-object – capdragon 2011-04-04 17:47:03