客户端:
<add key="ServiceURL_SysRoleDal" value="tcp://10.0.0.122:8000/TintLockManage.LockDAL.SysRoleDal"/>
服务端:<wellknown type="TintLockManage.LockDAL.SysEmployeeDal,TintLockManage.LockDAL" objectUri="TintLockManage.LockDAL.SysEmployeeDal" mode="Singleton" />
和
<channels>
<channel ref="tcp" port="8000"/>
<serverProviders>
<formatter ref="binary" typeFilterLevel="Full"/>
</serverProviders>
</channels>
远程对象:SysEmployeeDal.cs
它继承 MarshalByRefObject问题如下:
按上述架框,我调用一个最简单的 public int Add(int i,int j)方法,一点问题没有,测试1+1会返回2。
接下来我要连接数据库,查询一张表的记录,我是这么做的,在SysEmployeeDal.cs里,我会对SQL语句组织好,参数处理好,然后将其扔给 SqlHelper的静态方法为我执行,并返回一个 SqlDataReader对象,
但事与愿违,报错:捕捉到 System.TypeInitializationException
Message="“TintLockManage.LockDAL.SQLHelper”的类型初始值设定项引发异常。"
Source="TintLockManage.LockDAL"
TypeName="TintLockManage.LockDAL.SQLHelper"
在服务端,如果我采用直接 new的方式,会很顺利得到数据,但用Remoting服务的话,就卡死在SqlHelper那里,
我的推测是:因为
SysEmployeeDal employeeDal = (SysEmployeeDal)Activator.GetObject(typeof(SysEmployeeDal), ConfigurationManager.AppSettings["ServiceURL_SysEmployeeDal"]);只是获得了SysEmployeeDal的对象,而没有得到SqlHelper的对象所以如此,不知道这个推断对不?
哪个达人知道其中的蹊跷?
<add key="ServiceURL_SysRoleDal" value="tcp://10.0.0.122:8000/TintLockManage.LockDAL.SysRoleDal"/>
服务端:<wellknown type="TintLockManage.LockDAL.SysEmployeeDal,TintLockManage.LockDAL" objectUri="TintLockManage.LockDAL.SysEmployeeDal" mode="Singleton" />
和
<channels>
<channel ref="tcp" port="8000"/>
<serverProviders>
<formatter ref="binary" typeFilterLevel="Full"/>
</serverProviders>
</channels>
远程对象:SysEmployeeDal.cs
它继承 MarshalByRefObject问题如下:
按上述架框,我调用一个最简单的 public int Add(int i,int j)方法,一点问题没有,测试1+1会返回2。
接下来我要连接数据库,查询一张表的记录,我是这么做的,在SysEmployeeDal.cs里,我会对SQL语句组织好,参数处理好,然后将其扔给 SqlHelper的静态方法为我执行,并返回一个 SqlDataReader对象,
但事与愿违,报错:捕捉到 System.TypeInitializationException
Message="“TintLockManage.LockDAL.SQLHelper”的类型初始值设定项引发异常。"
Source="TintLockManage.LockDAL"
TypeName="TintLockManage.LockDAL.SQLHelper"
在服务端,如果我采用直接 new的方式,会很顺利得到数据,但用Remoting服务的话,就卡死在SqlHelper那里,
我的推测是:因为
SysEmployeeDal employeeDal = (SysEmployeeDal)Activator.GetObject(typeof(SysEmployeeDal), ConfigurationManager.AppSettings["ServiceURL_SysEmployeeDal"]);只是获得了SysEmployeeDal的对象,而没有得到SqlHelper的对象所以如此,不知道这个推断对不?
哪个达人知道其中的蹊跷?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货