【问题标题】:Unable to select global temp table (##TempTable) from C#无法从 C# 中选择全局临时表 (##TempTable)
【发布时间】:2014-02-27 18:50:08
【问题描述】:

当我尝试从 win 表单应用程序中选择全局临时表时,我可以从任意数量的客户端读取表,当我从 Windows 服务中托管的 WCF 服务执行相同操作时,我收到错误消息 对象名称“##MyTempTable”无效。

同时我可以使用相同的代码从winform中选择表格,有人能解释一下可能的原因吗?

  1. 从数据适配器 dll 调用 SP
  2. 数据适配器 (WCF) 服务在服务启动时加载此 ada 适配器 dll
  3. 另一个 WCF 服务向 DA 服务请求数据以在 Web 客户端中显示数据
  4. DA 服务作为 NT AUTHORITY\NetworkService 托管在 Windows 服务中
  5. winform 和 dll 中使用的连接字符串是 "conString = "Data Source=.\;" + "Initial Catalog=myDB;" + "Integrated Security=SSPI;";" 我也尝试在连接字符串中传递 Sa 凭据,但行为仍然相同。

我试图从 dll 中执行的操作可以从 win 表单中完成,而我无法从 WCF 服务使用的 dll 中执行。

【问题讨论】:

  • 用于创建此全局临时表的连接,该连接是否仍然打开?请记住,只要此连接关闭,全局临时表就会消失
  • 是的,你是对的,这就是为什么它可以与 winform 一起使用而在服务中失败。

标签: c# sql .net wcf global-temp-tables


【解决方案1】:

直到创建您的全局临时表的连接生效。任何其他连接都可以访问该全局临时表。一旦创建 gloabl 临时表的连接关闭,这个全局临时表就会自动删除,并且任何其他尝试使用它的连接都会收到异常,指出对象名称无效。

MSDN

【讨论】:

  • 不错的发现,我错过了。非常感谢。
猜你喜欢
  • 2010-10-15
  • 1970-01-01
  • 2011-02-15
  • 2016-04-22
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
  • 2017-10-02
  • 2023-03-27
相关资源
最近更新 更多