【发布时间】:2014-04-03 15:31:32
【问题描述】:
我开发了一个带有插件的 wpf 主机应用程序并希望共享它们 SqlConnection,但是当我尝试通过 Remoting 传递 SqlConnection 的对象时,我得到一个错误:
remoting cannot find field 'objectid' on type 'system.data.sqlclient.sqlconnection'
Google 和 SO 没有帮助我,我发现的唯一主题是链接断开 :(
我能以某种方式通过 SqlConnection 吗?问题是我已经有了基于 ado.net 的应用程序,我没有可能重写它们。另一方面,我需要为不同的插件提供对同一连接的访问权限,因为它们可以通过临时表进行互操作。
异常信息:
(last error: Remoting cannot find field 'ObjectID' on type 'System.Data.SqlClient.SqlConnection'.).
StackTrace:
Server stack trace:
at System.Object.GetFieldInfo(String typeName, String fieldName)
at System.Object.FieldGetter(String typeName, String fieldName, Object& val)
at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at System.Object.FieldGetter(String typeName, String fieldName, Object& val)
at System.Data.SqlClient.SqlCommand.set_Connection(SqlConnection value)
at LSSample.SampleUserControl.ExecuteSqlLocal() in c:\Users\voskresenskiy\Documents\Visual Studio 2013\Projects\UIContainer\WpfHost\LSSample\SampleUserControl.xaml.cs:line
如果有任何帮助,我将不胜感激
【问题讨论】:
-
您真的需要相同的连接还是仅仅连接到相同的数据库?
-
@DStanley 是的,我需要相同的连接,因为我需要访问临时表。此外,任务是最小化与数据库的连接(它会过多地加载我们的数据库)