调用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()
有什么想法吗?
这不会起作用:
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();
应该起作用。