[英]Object reference not set to an instance of an object #1
我正在尝试从C#客户端使用基于C#的服务。
当我中断服务方法调用并将鼠标悬停在前面的username
和password
属性上以验证是否已设置它们时,将鼠标移到该方法上,它将正常工作。 当我在服务方法调用处中断时,然后在不验证用户名/密码的情况下立即越过方法调用时,得到的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.