繁体   English   中英

对象引用未设置为对象#1的实例

[英]Object reference not set to an instance of an object #1

我正在尝试从C#客户端使用基于C#的服务。

当我中断服务方法调用并将鼠标悬停在前面的usernamepassword属性上以验证是否已设置它们时,将鼠标移到该方法上,它将正常工作。 当我在服务方法调用处中断时,然后在不验证用户名/密码的情况下立即越过方法调用时,得到的object reference not set to an instance of an object

用户名和密码来自app.config文件,并且配置值未更改。

这是否可能是同步处理问题,并且用户名和密码未及时设置? 我尝试插入sleep(5000)调用,但没有帮助。 我已经多次更新了服务参考。

MyService.ServiceClient sc = new MyService.ServiceClient();

sc.ClientCredentials.UserName.UserName ="pinkpanther"; // comes from app.config file
sc.ClientCredentials.UserName.Password = "clouseau"; // comes from app.config file

//open service client/proxy
sc.Open();

Dictionary<int, string> result = new Dictionary<int, string>();

// Sleep(5000); this doesn't seem to help

result = sc.FindVillain("Paris", "Train", "Car3", 4);

success = result.ContainsValue("The villain has been detained.");

sc.Close();

您没有指定,但是假设使用WCF Web服务,要记住的一件事是直到您首次调用ws方法才真正尝试进行代理连接。 它的行为相当奇怪,但是根据我的经验,当您调用.Open()时,实际上并未建立客户端连接。 在您的代码中,尝试通过.FindVillain()调用连接。 您将需要进入.FindVillain()来查看实际为空的内容(或使用堆栈跟踪)。 您也可以尝试调用其他ws方法(如果有),以查看是在第一次调用还是在.FindVillain()上抛出了null异常。

祝好运

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM