【发布时间】:2011-02-02 06:49:23
【问题描述】:
我创建了一个 WCF 服务 (.NET 3.5),它从数据库中获取数据并返回一个对象列表。它工作得很好。我使用 WCFTestClient 应用程序对其进行了测试,得到了预期的结果。
现在,我尝试创建一个 ASP.NET Web 应用程序并使用该服务。在配置文件中启用<serviceDebug includeExceptionDetailInFaults="true"/> 后,错误消息是“对象引用未设置为对象的实例。”
如何修改服务以使用 ASP.NET?
谢谢!
更新 1 - 我创建了对服务的引用。当我运行我非常基本的测试应用程序时,根据服务默认网页上显示的示例代码,我收到“对象引用未设置为对象实例”消息。
当我使用 Visual Studio 提供的 WCF 测试客户端实用程序时,该服务返回正确的结果。当我尝试使用以下代码时,全部在 page_load 事件中,我得到对象引用消息。
PhoneNumberServiceClient client = new PhoneNumberServiceClient();
// Use the 'client' variable to call operations on the service
List<PhoneNumber> phones = client.GetPhoneNumbers();
// Always close the client.
client.Close();
我会尝试获取一些额外的调试信息。
【问题讨论】:
-
我们需要更多信息。您是否添加了对 ASP.net 应用程序的服务引用?您可以在服务器端添加断点并单步执行您的代码以查看发生了什么吗?
-
WCF 服务无需修改即可使用 ASP.NET 页面。还有什么不对劲的。请在客户端上发布您收到的整个异常。在代码周围放置一个 try/catch 块,在 catch 块中,获取 ex.ToString() 的值。把它贴在这里。另外,说说
includeExceptionDetailInFaults为假时会发生什么。