您的位置:首页 > 其它

Dynamic CRM 2013学习笔记(三十)Linq使用报错 A proxy type with the name account has been defined by another assembly

2015-01-27 17:11 701 查看
在CRM中使用linq时,有时会报这个错误:


A proxy type with the name account has been defined by another assembly.

Current type: Account, MyAssembly, Version=1.0.0.4, Culture=neutral, PublicKeyToken=be9afbacb707a086,

Existing type: Account, CustomPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

Parameter name: account”


网上一搜索,有人说解决很简单:

[code]var connection = CrmConnection.Parse(connectionString);


connection.ProxyTypesAssembly = Assembly.GetExecutingAssembly();

[/code]

再到项目里一看,发现就没有这个CrmConnection:

Uri orgServiceUri = new Uri(CRMServiceUrl + "/XRMServices/2011/Organization.svc");


ClientCredentials credentials = new ClientCredentials();


if (CRMAuthenticationType == "AD")


{


credentials.Windows.ClientCredential = new System.Net.NetworkCredential(CRMUserName, CRMUserPassword, CRMUserDomainName);


}


else if (CRMAuthenticationType == "ADFS")


{


credentials.UserName.UserName = CRMUserDomainName + "\\" + CRMUserName;


credentials.UserName.Password = CRMUserPassword;


}


OrganizationServiceProxy crmServiceProxy = new OrganizationServiceProxy(orgServiceUri, null, credentials, null);


crmService = (IOrganizationService)crmServiceProxy;


原来是用的OrganizationServiceProxy,于是把它改成OrganizationService,因为OrganizationService里面会用到这个CrmConnection:

ClientCredentials credentials = new ClientCredentials();


if (CRMAuthenticationType == "AD")


{


credentials.Windows.ClientCredential = new System.Net.NetworkCredential(CRMUserName, CRMUserPassword, CRMUserDomainName);


}


else if (CRMAuthenticationType == "ADFS")


{


credentials.UserName.UserName = CRMUserDomainName + "\\" + CRMUserName;


credentials.UserName.Password = CRMUserPassword;


}


string server = string.Format("Url={0};Domain={1};Username={2};Password={2}", CRMServiceUrl, CRMUserDomainName, CRMUserName, CRMUserPassword);


var connection = CrmConnection.Parse(server);


connection.ProxyTypesAssembly = Assembly.GetExecutingAssembly();


connection.ClientCredentials = credentials;


m_CrmService = new OrganizationService(connection);


m_SvcContext = new ServiceContext(m_CrmService);


改完后,就不报这个错了。

Dynamic CRM 2013学习笔记 系列汇总 -- 持续更新中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐