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

在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”

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

var connection = CrmConnection.Parse(connectionString);
connection.ProxyTypesAssembly = Assembly.GetExecutingAssembly();

 

再到项目里一看,发现就没有这个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学习笔记 系列汇总 -- 持续更新中



如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
posted @   疯吻IT  阅读(1188)  评论(1编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
历史上的今天:
2014-01-27 如何在sharepoint里通过correlation id查找详细的错误信息
2014-01-27 Office Web Apps 错误
点击右上角即可分享
微信分享提示