c# – 从外部MVC应用程序中的CrmOrganizationServiceContext获取
我希望能够在我的上设置来电显示
XrmServiceContext : Microsoft.Xrm.Client.CrmOrganizationServiceContext 使用svcutil.exe为crm生成的上下文. 据我所知,我无法在现有连接上执行此操作,我需要首先创建一个OrganizationServiceProxy实例,设置Call??erID,然后将其作为参数传递给新的XrmServiceContext,然后我可以使用它. 但是,我有点不知道如何从CrmOrganizationServiceContext到拥有OrganizationServiceProxy 该程序是一个单独的.Net4.5应用程序 任何有用的提示或链接? 编辑:发布此内容后发现此页面:http://msdn.microsoft.com/en-us/library/gg695810.aspx 所以它可能很简单: var connection = new CrmConnection("Xrm"); connection.CallerId = uide; _serviceContext = new XrmServiceContext(connection); 编辑2:并不是那么简单. CrmConnection connection = new CrmConnection("Xrm"); connection.CallerId = Guid.NewGuid();//u.Id; _serviceContext = new XrmServiceContext(connection); 它编译并且不会崩溃但我怀疑当我使用具有非常低的权限的用户的id但仍然获得所有数据时,我然后尝试为XrmServiceContext的每个实例生成新的Guid但是我仍然得到了所有的东西.所以我猜它没有被使用..或者我错过了别的东西. 编辑3 编辑4 现在我只需要弄清楚如何清除CRM 2013 SDK中的缓存. 编辑5 如果有人可以告诉我如何使用代码清空服务上下文缓存,我会将其标记为正确的解决方案 解决方法
该问题与microsoft.xrm.client部分下的web.config中定义的默认instanceMode有关.
默认情况下,该设置设置为PerRequest
因此,在这种情况下,当您执行初始调用以确定要将CallerId设置为哪个用户时,实例将被“缓存”(缺少更好的单词)和同一请求中的子请求调用,即使您正在创建新的XrmServiceContext,也会返回实例 解决方案是将instanceMode更改为PerInstance
修改web.config,以便正确指定instanceMode属性 <microsoft.xrm.client> <contexts> <add name="Xrm" type="Xrm.XrmServiceContext,Xrm" serviceName="Xrm" /> </contexts> <services> <add name="Xrm" type="Microsoft.Xrm.Client.Services.OrganizationService,Microsoft.Xrm.Client" instanceMode="PerInstance" /> </services> </microsoft.xrm.client> 在JensB在其第5次编辑:http://msdn.microsoft.com/en-us/library/gg695805.aspx中发布的文章中找到此信息 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |