调用SAP webservice时未设置C#响应对象引用

本文关键字:响应 对象引用 设置 SAP webservice 调用 | 更新日期: 2023-09-27 18:19:54

我在SAP中有一个web服务,我必须为该web服务创建一个C#客户端。我创建了客户端,但收到了来自C#的错误。错误是:

对象引用未设置为对象的实例。

我的客户来源是:

Uri uri = new Uri("http://address");
var address = new EndpointAddress(uri, EndpointIdentity.CreateSpnIdentity("teste"));
ServiceReference2.ZWS_PEP_ENVIO_MRZClient wsclient = new ServiceReference2.ZWS_PEP_ENVIO_MRZClient();
//  wsclient.Endpoint.Binding.Scheme;
wsclient.ClientCredentials.UserName.UserName = "user_name";
wsclient.ClientCredentials.UserName.Password = "password";
wsclient.Endpoint.Address = address;
wsclient.Open();

ServiceReference2.ZwsPepEnvioMrz request = new ServiceReference2.ZwsPepEnvioMrz();
request.Descricao = descricaoField;
request.Mrz1 = mrz1Field;
request.Mrz2 = mrz2Field;
request.Numeroprocesso = numeroprocessoField;
request.Sn = snField;
request.Statusdatapreparation = statusdatapreparationField;
request.Versaodocumento = versaodocumentoField;
wsclient.ZwsPepEnvioMrz(request);
ServiceReference2.ZwsPepEnvioMrzResponse1 response = new ServiceReference2.ZwsPepEnvioMrzResponse1();
Resultado = response.ZwsPepEnvioMrzResponse.ToString();
textBox1.Text = Resultado;

wsclient.Close();

程序在终止

Resultado= response.ZwsPepEnvioMrzResponse.ToString()

有什么想法吗?

调用SAP webservice时未设置C#响应对象引用

这不会起作用:

wsclient.ZwsPepEnvioMrz(request);
ServiceReference2.ZwsPepEnvioMrzResponse1 response = new  ServiceReference2.ZwsPepEnvioMrzResponse1();

您不能自己创建一个新的响应对象并期望它包含任何数据。响应对象应该是web服务调用的结果。我无法检查这一点,因为类型是特定于您的web服务的,但如果ws方法ZwsPepEnviroMrz返回ServiceReference2.ZwsPep EnvioMrzResponse1类型的对象,您应该尝试以下操作:

ServiceReference2.ZwsPepEnvioMrzResponse1 response = wsclient.ZwsPepEnvioMrz(request);

现在response变量应该包含一些数据和这个

Resultado = response.ZwsPepEnvioMrzResponse.ToString();

应该起作用。