Я знаю, что это повторяющаяся проблема.Но я гуглил в последние 2 дня, но до сих пор не могу найти решение моей проблемы.Популярный ответ связан с пространством имен, но он все равно мне не помогает.
Хорошо, поэтому мой wsdl:
<?xml version="1.0" encoding="UTF-8"?>
<!-- WSDL for http://daac.ornl.gov/cgi-bin/MODIS/GLBVIZ_1_Glb_subset/MODIS_webservice.pl created by Pod::WSDL version: 0.04 on Mon May 24 15:41:43 2010 -->
<wsdl:definitions targetNamespace="http://daac.ornl.gov/MODIS_webservice"
xmlns:impl="http://daac.ornl.gov/MODIS_webservice"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:tns1="http://daac.ornl.gov/MODIS_webservice">
<wsdl:types>
<schema targetNamespace="http://daac.ornl.gov/MODIS_webservice" xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
<complexType name="ArrayOfString">
<complexContent>
<restriction base="soapenc:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="soapenc:string[]" />
</restriction>
</complexContent>
</complexType>
<complexType name="ModisData">
<sequence>
<element name="xllcorner" nillable="true" type="xsd:float">
<annotation>
<documentation>
X-Longitude of the corner of lower left pixel in Sinusoidal projection
</documentation>
</annotation>
</element>
<element name="yllcorner" nillable="true" type="xsd:float">
<annotation>
<documentation>
Y-Latitude of the corner of lower left pixel in Sinusoidal projection
</documentation>
</annotation>
</element>
<element name="cellsize" nillable="true" type="xsd:float">
<annotation>
<documentation>Resolution of the data</documentation>
</annotation>
</element>
<element name="nrows" nillable="true" type="xsd:float">
<annotation>
<documentation>Number of rows</documentation>
</annotation>
</element>
<element name="ncols" nillable="true" type="xsd:float">
<annotation>
<documentation>Number of rows</documentation>
</annotation>
</element>
<element name="band" nillable="true" type="xsd:string">
<annotation>
<documentation>Band Name</documentation>
</annotation>
</element>
<element name="units" nillable="true" type="xsd:string">
<annotation>
<documentation>Units for the band</documentation>
</annotation>
</element>
<element name="scale" nillable="true" type="xsd:float">
<annotation>
<documentation>scale of the data values</documentation>
</annotation>
</element>
<element name="latitude" nillable="true" type="xsd:float">
<annotation>
<documentation>Latitude in degrees of the subset location</documentation>
</annotation>
</element>
<element name="longitude" nillable="true" type="xsd:float">
<annotation>
<documentation>Longitude in degrees of the subset location</documentation>
</annotation>
</element>
<element name="header" nillable="true" type="xsd:string">
<annotation>
<documentation>Header for the Subset returned</documentation>
</annotation>
</element>
<element name="subset" nillable="true" type="tns1:ArrayOfString">
<annotation>
<documentation>Subset data</documentation>
</annotation>
</element>
</sequence>
</complexType>
</schema>
</wsdl:types>
<wsdl:message name="getproductsRequest">
</wsdl:message>
<wsdl:message name="getproductsResponse">
<wsdl:part name="getproductsReturn" type="tns1:ArrayOfString">
<wsdl:documentation>This returns the list of products available. Product shortname is used.</wsdl:documentation>
</wsdl:part>
</wsdl:message>
<wsdl:message name="getbandsRequest">
<wsdl:part name="Product" type="xsd:string">
<wsdl:documentation>MODIS Product Shortname</wsdl:documentation>
</wsdl:part>
</wsdl:message>
<wsdl:message name="getbandsResponse">
<wsdl:part name="getbandsReturn" type="tns1:ArrayOfString">
<wsdl:documentation>This returns the list of bands available for a product</wsdl:documentation>
</wsdl:part>
</wsdl:message>
<wsdl:message name="getdatesRequest">
<wsdl:part name="Latitude" type="xsd:float">
<wsdl:documentation>Latitude in geographic Lat/Long WGS 84 coordinate system</wsdl:documentation>
</wsdl:part>
<wsdl:part name="Longitude" type="xsd:float">
<wsdl:documentation>Longitude in geographic Lat/Long WGS 84 coordinate system</wsdl:documentation>
</wsdl:part>
<wsdl:part name="Product" type="xsd:string">
<wsdl:documentation>MODIS Product Shortname</wsdl:documentation>
</wsdl:part>
</wsdl:message>
<wsdl:message name="getdatesResponse">
<wsdl:part name="getdatesReturn" type="tns1:ArrayOfString">
<wsdl:documentation>This returns the list of composite dates available for the product,Latitude,Longitude combination</wsdl:documentation>
</wsdl:part>
</wsdl:message>
<wsdl:message name="getsubsetRequest">
<wsdl:part name="Latitude" type="xsd:float">
<wsdl:documentation>Latitude in geographic Lat/Long WGS 84 coordinate system</wsdl:documentation>
</wsdl:part>
<wsdl:part name="Longitude" type="xsd:float">
<wsdl:documentation>Longitude in geographic Lat/Long WGS 84 coordinate system</wsdl:documentation>
</wsdl:part>
<wsdl:part name="Product" type="xsd:string">
<wsdl:documentation>MODIS Product Shortname</wsdl:documentation>
</wsdl:part>
<wsdl:part name="Band" type="xsd:string">
<wsdl:documentation>Enter the band you want to retreive. Enter all to get all bands.</wsdl:documentation>
</wsdl:part>
<wsdl:part name="MODIS_Subset_Start_Date" type="xsd:string">
<wsdl:documentation>MODIS Composite Date Start of the Subset period</wsdl:documentation>
</wsdl:part>
<wsdl:part name="MODIS_Subset_End_Date" type="xsd:string">
<wsdl:documentation>MODIS Composite Date End of the Subset period</wsdl:documentation>
</wsdl:part>
<wsdl:part name="Km_Above_Below" type="xsd:string">
<wsdl:documentation>Size in km of the subset above and below the center location</wsdl:documentation>
</wsdl:part>
<wsdl:part name="Km_Left_Right" type="xsd:string">
<wsdl:documentation>Size in km of the subset left and right the center location</wsdl:documentation>
</wsdl:part>
</wsdl:message>
<wsdl:message name="getsubsetResponse">
<wsdl:part name="getsubsetReturn" type="tns1:ModisData">
<wsdl:documentation>This returns the subset for the location,product and date combination and detailed projection information.</wsdl:documentation>
</wsdl:part>
</wsdl:message>
<wsdl:message name="getsubsetorderRequest">
<wsdl:part name="Latitude" type="xsd:float">
<wsdl:documentation>Latitude in geographic Lat/Long WGS 84 coordinate system</wsdl:documentation>
</wsdl:part>
<wsdl:part name="Longitude" type="xsd:float">
<wsdl:documentation>Longitude in geographic Lat/Long WGS 84 coordinate system</wsdl:documentation>
</wsdl:part>
<wsdl:part name="Product" type="xsd:string">
<wsdl:documentation>MODIS Product Shortname</wsdl:documentation>
</wsdl:part>
<wsdl:part name="Email" type="xsd:string">
<wsdl:documentation>Enter the email address to which you want to receive the order</wsdl:documentation>
</wsdl:part>
<wsdl:part name="UID" type="xsd:string">
<wsdl:documentation>Unique tag for the order</wsdl:documentation>
</wsdl:part>
<wsdl:part name="MODIS_Subset_Start_Date" type="xsd:string">
<wsdl:documentation>MODIS Composite Date Start of the Subset period</wsdl:documentation>
</wsdl:part>
<wsdl:part name="MODIS_Subset_End_Date" type="xsd:string">
<wsdl:documentation>MODIS Composite Date End of the Subset period</wsdl:documentation>
</wsdl:part>
<wsdl:part name="Km_Above_Below" type="xsd:string">
<wsdl:documentation>Size in km of the subset above and below the center location</wsdl:documentation>
</wsdl:part>
<wsdl:part name="Km_Left_Right" type="xsd:string">
<wsdl:documentation>Size in km of the subset left and right the center location</wsdl:documentation>
</wsdl:part>
</wsdl:message>
<wsdl:message name="getsubsetorderResponse">
<wsdl:part name="getsubsetorderReturn" type="xsd:string">
<wsdl:documentation>This returns the order ID for the subset ID. An email with a link to the subset order would be dispatched to the email address provided.</wsdl:documentation>
</wsdl:part>
</wsdl:message>
<wsdl:portType name="myServiceHandler">
<wsdl:operation name="getproducts" parameterOrder="">
<wsdl:input message="impl:getproductsRequest" name="getproductsRequest" />
<wsdl:output message="impl:getproductsResponse" name="getproductsResponse" />
</wsdl:operation>
<wsdl:operation name="getbands" parameterOrder="Product">
<wsdl:input message="impl:getbandsRequest" name="getbandsRequest" />
<wsdl:output message="impl:getbandsResponse" name="getbandsResponse" />
</wsdl:operation>
<wsdl:operation name="getdates" parameterOrder="Latitude Longitude Product">
<wsdl:input message="impl:getdatesRequest" name="getdatesRequest" />
<wsdl:output message="impl:getdatesResponse" name="getdatesResponse" />
</wsdl:operation>
<wsdl:operation name="getsubset" parameterOrder="Latitude Longitude Product Band MODIS_Subset_Start_Date MODIS_Subset_End_Date Km_Above_Below Km_Left_Right">
<wsdl:input message="impl:getsubsetRequest" name="getsubsetRequest" />
<wsdl:output message="impl:getsubsetResponse" name="getsubsetResponse" />
</wsdl:operation>
<wsdl:operation name="getsubsetorder" parameterOrder="Latitude Longitude Product Email UID MODIS_Subset_Start_Date MODIS_Subset_End_Date Km_Above_Below Km_Left_Right">
<wsdl:input message="impl:getsubsetorderRequest" name="getsubsetorderRequest" />
<wsdl:output message="impl:getsubsetorderResponse" name="getsubsetorderResponse" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="myServiceSoapBinding" type="impl:myServiceHandler">
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="getproducts">
<wsdlsoap:operation soapAction="" />
<wsdl:input name="getproductsRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://daac.ornl.gov/MODIS_webservice" use="encoded" />
</wsdl:input>
<wsdl:output name="getproductsResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://daac.ornl.gov/MODIS_webservice" use="encoded" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getbands">
<wsdlsoap:operation soapAction="" />
<wsdl:input name="getbandsRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://daac.ornl.gov/MODIS_webservice" use="encoded" />
</wsdl:input>
<wsdl:output name="getbandsResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://daac.ornl.gov/MODIS_webservice" use="encoded" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getdates">
<wsdlsoap:operation soapAction="" />
<wsdl:input name="getdatesRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://daac.ornl.gov/MODIS_webservice" use="encoded" />
</wsdl:input>
<wsdl:output name="getdatesResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://daac.ornl.gov/MODIS_webservice" use="encoded" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getsubset">
<wsdlsoap:operation soapAction="" />
<wsdl:input name="getsubsetRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://daac.ornl.gov/MODIS_webservice" use="encoded" />
</wsdl:input>
<wsdl:output name="getsubsetResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://daac.ornl.gov/MODIS_webservice" use="encoded" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getsubsetorder">
<wsdlsoap:operation soapAction="" />
<wsdl:input name="getsubsetorderRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://daac.ornl.gov/MODIS_webservice" use="encoded" />
</wsdl:input>
<wsdl:output name="getsubsetorderResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://daac.ornl.gov/MODIS_webservice" use="encoded" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="myServiceHandlerService">
<wsdl:port binding="impl:myServiceSoapBinding" name="myService">
<wsdlsoap:address location="http://daac.ornl.gov/cgi-bin/MODIS/GLBVIZ_1_Glb_subset/MODIS_webservice.pl" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Мой сгенерированный прокси-класс:
namespace FarmNet.Modis {
// .... I cut off code
[System.Web.Services.WebServiceBindingAttribute(Name="myServiceSoapBinding", Namespace="http://daac.ornl.gov/MODIS_webservice")]
public partial class myServiceHandlerService : System.Web.Services.Protocols.SoapHttpClientProtocol {
// ........... code cut off
/// <remarks/>
public myServiceHandlerService() {
/// <remarks/>
[System.Web.Services.Protocols.SoapRpcMethodAttribute("", RequestNamespace="http://daac.ornl.gov/MODIS_webservice", ResponseNamespace="http://daac.ornl.gov/MODIS_webservice")]
[return: System.Xml.Serialization.SoapElementAttribute("getproductsReturn")]
public string[] getproducts() {
object[] results = this.Invoke("getproducts", new object[0]);
return ((string[])(results[0]));
}
/// <remarks/>
public void getproductsAsync() {
this.getproductsAsync(null);
}
/// <remarks/>
public void getproductsAsync(object userState) {
if ((this.getproductsOperationCompleted == null)) {
this.getproductsOperationCompleted = new System.Threading.SendOrPostCallback(this.OngetproductsOperationCompleted);
}
this.InvokeAsync("getproducts", new object[0], this.getproductsOperationCompleted, userState);
}
private void OngetproductsOperationCompleted(object arg) {
if ((this.getproductsCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.getproductsCompleted(this, new getproductsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[System.Web.Services.Protocols.SoapRpcMethodAttribute("", RequestNamespace="http://daac.ornl.gov/MODIS_webservice", ResponseNamespace="http://daac.ornl.gov/MODIS_webservice")]
[return: System.Xml.Serialization.SoapElementAttribute("getbandsReturn")]
public string[] getbands(string Product) {
object[] results = this.Invoke("getbands", new object[] {
Product});
return ((string[])(results[0]));
}
/// <remarks/>
public void getbandsAsync(string Product) {
this.getbandsAsync(Product, null);
}
/// <remarks/>
public void getbandsAsync(string Product, object userState) {
if ((this.getbandsOperationCompleted == null)) {
this.getbandsOperationCompleted = new System.Threading.SendOrPostCallback(this.OngetbandsOperationCompleted);
}
this.InvokeAsync("getbands", new object[] {
Product}, this.getbandsOperationCompleted, userState);
}
private void OngetbandsOperationCompleted(object arg) {
if ((this.getbandsCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.getbandsCompleted(this, new getbandsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[System.Web.Services.Protocols.SoapRpcMethodAttribute("", RequestNamespace="http://daac.ornl.gov/MODIS_webservice", ResponseNamespace="http://daac.ornl.gov/MODIS_webservice")]
[return: System.Xml.Serialization.SoapElementAttribute("getdatesReturn")]
public string[] getdates(float Latitude, float Longitude, string Product) {
object[] results = this.Invoke("getdates", new object[] {
Latitude,
Longitude,
Product});
return ((string[])(results[0]));
}
/// <remarks/>
public void getdatesAsync(float Latitude, float Longitude, string Product) {
this.getdatesAsync(Latitude, Longitude, Product, null);
}
/// <remarks/>
public void getdatesAsync(float Latitude, float Longitude, string Product, object userState) {
if ((this.getdatesOperationCompleted == null)) {
this.getdatesOperationCompleted = new System.Threading.SendOrPostCallback(this.OngetdatesOperationCompleted);
}
this.InvokeAsync("getdates", new object[] {
Latitude,
Longitude,
Product}, this.getdatesOperationCompleted, userState);
}
private void OngetdatesOperationCompleted(object arg) {
if ((this.getdatesCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.getdatesCompleted(this, new getdatesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[System.Web.Services.Protocols.SoapRpcMethodAttribute("", RequestNamespace="http://daac.ornl.gov/MODIS_webservice", ResponseNamespace="http://daac.ornl.gov/MODIS_webservice")]
[return: System.Xml.Serialization.SoapElementAttribute("getsubsetReturn")]
public ModisData getsubset(float Latitude, float Longitude, string Product, string Band, string MODIS_Subset_Start_Date, string MODIS_Subset_End_Date, string Km_Above_Below, string Km_Left_Right) {
object[] results = this.Invoke("getsubset", new object[] {
Latitude,
Longitude,
Product,
Band,
MODIS_Subset_Start_Date,
MODIS_Subset_End_Date,
Km_Above_Below,
Km_Left_Right});
return ((ModisData)(results[0]));
}
/// <remarks/>
public void getsubsetAsync(float Latitude, float Longitude, string Product, string Band, string MODIS_Subset_Start_Date, string MODIS_Subset_End_Date, string Km_Above_Below, string Km_Left_Right) {
this.getsubsetAsync(Latitude, Longitude, Product, Band, MODIS_Subset_Start_Date, MODIS_Subset_End_Date, Km_Above_Below, Km_Left_Right, null);
}
/// <remarks/>
public void getsubsetAsync(float Latitude, float Longitude, string Product, string Band, string MODIS_Subset_Start_Date, string MODIS_Subset_End_Date, string Km_Above_Below, string Km_Left_Right, object userState) {
if ((this.getsubsetOperationCompleted == null)) {
this.getsubsetOperationCompleted = new System.Threading.SendOrPostCallback(this.OngetsubsetOperationCompleted);
}
this.InvokeAsync("getsubset", new object[] {
Latitude,
Longitude,
Product,
Band,
MODIS_Subset_Start_Date,
MODIS_Subset_End_Date,
Km_Above_Below,
Km_Left_Right}, this.getsubsetOperationCompleted, userState);
}
private void OngetsubsetOperationCompleted(object arg) {
if ((this.getsubsetCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.getsubsetCompleted(this, new getsubsetCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
// Code is cut off
[System.Xml.Serialization.SoapTypeAttribute(Namespace="http://daac.ornl.gov/MODIS_webservice")]
public partial class ModisData {
private System.Nullable<float> xllcornerField;
private System.Nullable<float> yllcornerField;
private System.Nullable<float> cellsizeField;
private System.Nullable<float> nrowsField;
private System.Nullable<float> ncolsField;
private string bandField;
private string unitsField;
private System.Nullable<float> scaleField;
private System.Nullable<float> latitudeField;
private System.Nullable<float> longitudeField;
private string headerField;
private string[] subsetField;
/// <remarks/>
[System.Xml.Serialization.SoapElementAttribute(IsNullable=true)]
public System.Nullable<float> xllcorner {
get {
return this.xllcornerField;
}
set {
this.xllcornerField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.SoapElementAttribute(IsNullable=true)]
public System.Nullable<float> yllcorner {
get {
return this.yllcornerField;
}
set {
this.yllcornerField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.SoapElementAttribute(IsNullable=true)]
public System.Nullable<float> cellsize {
get {
return this.cellsizeField;
}
set {
this.cellsizeField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.SoapElementAttribute(IsNullable=true)]
public System.Nullable<float> nrows {
get {
return this.nrowsField;
}
set {
this.nrowsField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.SoapElementAttribute(IsNullable=true)]
public System.Nullable<float> ncols {
get {
return this.ncolsField;
}
set {
this.ncolsField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.SoapElementAttribute(IsNullable=true)]
public string band {
get {
return this.bandField;
}
set {
this.bandField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.SoapElementAttribute(IsNullable=true)]
public string units {
get {
return this.unitsField;
}
set {
this.unitsField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.SoapElementAttribute(IsNullable=true)]
public System.Nullable<float> scale {
get {
return this.scaleField;
}
set {
this.scaleField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.SoapElementAttribute(IsNullable=true)]
public System.Nullable<float> latitude {
get {
return this.latitudeField;
}
set {
this.latitudeField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.SoapElementAttribute(IsNullable=true)]
public System.Nullable<float> longitude {
get {
return this.longitudeField;
}
set {
this.longitudeField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.SoapElementAttribute(IsNullable=true)]
public string header {
get {
return this.headerField;
}
set {
this.headerField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.SoapElementAttribute(IsNullable=true)]
public string[] subset {
get {
return this.subsetField;
}
set {
this.subsetField = value;
}
}
// Code is cut off
}
Теперь все функции: getproducts()
, getdates()
, getbands()
все работают правильно.Единственная функция, которая не работает - getsubset()
.Я использую Fiddler и вижу правильный ответ мыла, полученный как:
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns1="http://daac.ornl.gov/MODIS_webservice">
<soap:Body>
<getsubsetResponse xmlns="http://daac.ornl.gov/MODIS_webservice">
<tns1:getsubsetReturn xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="tns1:ModisData">
<xllcorner xsi:type="xsd:float">12900942.51</xllcorner>
<yllcorner xsi:type="xsd:float">-3785264.93</yllcorner>
<cellsize xsi:type="xsd:float">463.312716528</cellsize>
<nrows xsi:type="xsd:float">21</nrows>
<ncols xsi:type="xsd:float">21</ncols>
<band xsi:type="xsd:string">LC_Property_1</band>
<units xsi:type="xsd:string">Not Available</units>
<scale xsi:type="xsd:float">0</scale>
<latitude xsi:type="xsd:float">-34</latitude>
<longitude xsi:type="xsd:float">140</longitude>
<header xsi:type="xsd:string">HDFname,... </header>
<subset soapenc:arrayType="xsd:string[1]" xsi:type="soapenc:Array">
<item xsi:type="xsd:string">MCD12Q1.A2001001....</item>
</subset>
</tns1:getsubsetReturn>
</getsubsetResponse>
</soap:Body>
</soap:Envelope>
Мой код, где я вызываю веб-сервис:
myServiceHandlerClient o = new myServiceHandlerClient();
// This WORKS:
string[] products = o.getproducts();
// This does NOT work, data is returned with all null fields:
ModisData data = o.getsubset(-34, 140, "MCD12Q1", "LC_Property_1", "A2001001", "A2001001", "5", "5");
Хорошо, так что из моего исследования можнобыть несоответствием в пространстве имен, но я не могу его найти.Пространство имен в файле wsdl и пространство имен из ответа мыла одинаковы (поэтому все остальные функции работают).Кроме того, я не вижу ни опечатки, ни чего-либо неправильного в именах элементов.
Что здесь может быть не так?Пожалуйста, помогите.
ps: я даже пытался использовать WCF, добавив ссылку на сервис из Visual Studio для генерации прокси-класса.Однако ни одна из функций не работает, все они возвращают ноль.