我正在创建一个Android应用程序,因为我使用ksoap2来调用.net c #web服务, 我的Android应用程序向Web服务发送一个字符串,该服务从oracle数据库中提取用户详细信息并返回串联的响应。
我通常能够正确检索回复。然后突然服务器开始向我抛出以下错误“无法访问已处置的对象。对象名称'oracle连接'oracle.DataAccess”,我无法访问Web服务器上的Web服务。
我不知道为什么会这样。有时我突然通过相同的代码得到正确的响应而没有任何改变。 我的通话方法如下:
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
public class CallSoap
{
public final String SOAP_ACTION = "http://tempuri.org/"+method_name;
public final String OPERATION_NAME = method_name;
public final String WSDL_TARGET_NAMESPACE = "http://tempuri.org/";
public final String SOAP_ADDRESS = "url";
public CallSoap(){ }
public String Call(String a)
{
SoapObject request =
new SoapObject(WSDL_TARGET_NAMESPACE,OPERATION_NAME);
request.addProperty("data",a);
SoapSerializationEnvelope envelope =
new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE httpTransport =
new HttpTransportSE(SOAP_ADDRESS);
Object response=null;
try
{
httpTransport.call(SOAP_ACTION, envelope);
response = envelope.getResponse();
}
catch (Exception exception)
{
response=exception.toString();
}
return response.toString();
}
}
但是,同样的Web服务可以从Web浏览器应用程序正常运行。
我搜索了每个论坛可能的答案终于在这里问了这个问题。 很抱歉因为我不熟悉所有这些。
谢谢
答案 0 :(得分:0)
您的问题的原因与您的Android应用程序无关。它纯粹是在C#Web服务中。
这可能是一个仅在某些条件下触发的错误,在使用网络浏览器时不会发生。然而,问题出在服务器端。
如果您构建了Web服务,则启动一个包含有关该服务的足够信息的新问题。如果没有,那么您需要将其委托给Web服务的所有者。