我有一个与 Word 2007 集成的 VSTO Word 插件项目,当我点击我的插件上的登录按钮时,我执行以下方法:
private void btnOK_Click(object sender, System.EventArgs e)
{
AuditDataAccess auditDataAccess =
(AuditDataAccess)DataAccessFactory.GetNewInstance(typeof(AuditDataAccess));
}
这里,DataAccessFactory
是另一个引用的程序集中的类,名为RemoteData
,如下所示:
public cl DataAccessFactory
{
static DataAccessFactory()
{
objADDataAccess = new ADDataAccess();
}
}
这里,ADDataAccess
是同一个程序集RemoteData
中的一个类:
namespace RemoteData.
{
public cl ADDataAccess : IDataAccess
{
RemoteData.Server.ADDataAccess proxy = null;
internal ADDataAccess()
{
proxy = new RemoteData.Server.ADDataAccess(); // Error Line
}
}
public intece IDataAccess
{
bool IsActive
{
get;
}
}
}
Server.ADDataAccess
与RemoteData
在同一程序集中:
namespace RemoteData.Server
{
public cl ADDataAccess:DataAccess
{
DataAccess.ADDataAccess objDataAccess;
public ADDataAccess()
{
//objDataAccess = new DataAccess.ADDataAccess();
}
}
public abstract cl DataAccess : MarshalByRefObject
{
public bool IsActive
{
get { return true; }
}
}
}
我已经注释了new DataAccess.ADDataAccess()
的代码,该代码在另一个名为DataAccess
的引用程序集中创建一个类的新对象,认为这可能是造成问题的原因,但我仍然收到相同的错误在注释为Error Line
的行的问题标题中提到
EDIT
:我已经创建了一个具有相同体系结构的小项目,并且工作正常,这是下载链接:http://www.2shared.com/file/dGXNtsAK/Server.html
请帮助…
此问题已解决。问题是,在Project.dll.config
文件中,存在如下远程处理配置:
<system.runtime.remoting>
<application>
<channels>
<channel ref="http">
<clientProviders>
<formatter ref="binary"/>
</clientProviders>
</channel>
</channels>
<client url="" displayName="">
<activated />
</client>
</application>
</system.runtime.remoting>
因为,我们直接实例化通过其中的<activated/>
元素公开的类型,而不是通过远程调用获取它们,所以它导致了异常。在注释了web.config
中的整个远程配置部分之后,它开始工作。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(83条)