我有一个在客户端服务器上运行的 Web 服务。当我通过服务器上的远程桌面访问它并输入参数时,它可以工作。当我从我的计算机访问它并输入参数时,它就可以工作了。当我从连接到计算机的手持设备上的应用程序访问它时,网络方法会抛出
{System.Web.Services.Protocols.SoapException: System.Web.Services.Protocols.SoapException:
Server was unable to process request. ---> System.Data.OracleClient.OracleException:
ORA-12505: TNS:listener does not currently know of SID given in connect descriptor
设备没有连接到数据库,它只是调用 Web 服务并将参数传递给它。我还创建了一个测试方法,只返回参数给设备,不连接DB,传递的参数没问题。
这让我发疯,我不知道这怎么可能。有人有什么想法吗?
编辑:工作互联网死了,问题很明显。问题实际上是从设备调用了我的本地开发版本的服务。我不知道为什么。这是服务构造函数的代码(源自 SoapHttpClientProtocol):
public Service1() {
this.Url = "LOCAL (WRONG) URL";
}
通过执行此代码:
server.Service1 s1 = new server.Service1();
s1.Url = "CLIENT (CORRECT) URL";
string test = s1.TestMethod(parameters);
在第一行之后, s1.Url 当然是错误的 url。在第二行之后, s1.Url 是正确的 url。然而第三行,连接错误,开发服务!我只是注意到这一点,因为我的互联网死了,与客户端服务器的连接应该失败,但它仍然工作......试图弄清楚为什么会发生这种情况。