【问题标题】:'System.NullReferenceException' occurred in databaseService.dll in wcf service [duplicate]wcf 服务的 databaseService.dll 中发生“System.NullReferenceException”[重复]
【发布时间】:2016-06-26 06:46:32
【问题描述】:

我创建了一个 WCF 服务并托管在 Windows 窗体应用程序中,并让客户端从应用程序中获胜,以使用该服务从数据库中检索数据并通过输入 ID 显示给客户端。

我该如何解决?

我在堆栈溢出中看到了许多空引用问题,但这些问题与 WCF 无关。

我的代码中的错误图片:

我的 web.config 文件中的连接字符串:

【问题讨论】:

  • 显然您没有该名称或其他名称的连接字符串...
  • 它有正确的连接字符串,在自托管服务中运行良好,但从客户端应用程序访问时出现此错误
  • " 我在堆栈溢出中看到了许多空引用问题,但与 wcf 无关" NRE 是 NRE,无论它们是否出现在 WCF、WinForms、ASP.NET 等中。 NRE 始终是您尝试对空对象执行某些操作(读取它、调用方法等)。
  • 如果ConfigurationManager.ConnectionStrings["foo"]返回null,而某些配置文件肯定包含connectionStrings条目和name="foo",那么你编辑了错误的配置文件。

标签: c# .net wcf wcfserviceclient


【解决方案1】:

您必须验证实际运行服务的可执行文件是否也具有在 app.config 或 web.config 中定义的连接字符串。可能,当你测试它时,你已经正确定义了它,但是当你在测试器之外运行它时,实际运行的应用程序并没有定义它。

【讨论】:

  • 我附上了 web.config 文件中的连接字符串图片
  • @waqarhaider 但是您说 WCF 服务托管在 Winform 应用程序中。在您执行它的任何文件夹中不应该有应用程序的 app.config 文件吗?这个配置文件是否也包含连接字符串?
  • 知道 app.config 文件不包含连接字符串,因为它自己没有检索数据,它只是将 ID 传递给服务,服务从数据库返回记录
  • @waqarhaider 如果该服务由该可执行文件托管,则该可执行文件的 app.config 必须具有连接字符串。从服务的 app.config 复制它并尝试运行它。
  • @waqarhaider 太好了。如果这有帮助,请接受答案。谢谢。
【解决方案2】:

您的连接字符串必须为空。 转到 xml 格式的 Webconfig 文件。检查标签是否有正确的连接字符串或丢失。 如果缺少,您可以使用以下方法添加它:

<connectionString>
<add name="connection_name" providerName = "provider_name" connectionString="connectionString"/>
</connectionString>

试试这个吧。

【讨论】:

  • 我附上了 web.config 文件中的连接字符串图片
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-26
  • 1970-01-01
  • 1970-01-01
  • 2011-04-03
  • 1970-01-01
  • 1970-01-01
  • 2016-02-28
相关资源
最近更新 更多