【问题标题】:Old CRM data is shown after refreshing page刷新页面后显示旧CRM数据
【发布时间】:2015-04-06 16:27:25
【问题描述】:

我正在构建简单的 ASP.NET MVC 网页,显示来自 MS Dynamics CRM 的所有活动帐户。

如果我编译并运行(使用 F5),页面基本上可以正常工作。当我转到 Microsoft Dynamics CRM 网页,登录然后将一个帐户状态从活动更改为非活动时出现问题。现在,当我刷新正在构建的页面时,我会得到相同的旧结果。

我尝试过刷新 (F5)、硬刷新 (Ctrl + F5)、在返回视图之前处理 xrm 对象,但没有任何效果。所以我想我误解了一些东西。

Controllers/HomeControler.cs

public ActionResult Index()
{
    using (var xrm = new XrmServiceContext("Xrm"))
    {
        var accounts = from a in xrm.AccountSet
                       where a.StateCode == 0
                       select a;

        List<AccountModel> accountModels = new List<AccountModel>();

        foreach (var account in accounts)
        {
            Debug.WriteLine(c+"\t"+account.Id+"\t"+account.Name);
            Debug.WriteLine(account.Address1_Composite);
            accountModels.Add(new AccountModel(
                account.Id.ToString(),
                account.Name,
                account.Address1_Composite));
        }

        ViewBag.Title = "Page Title";
        ViewBag.AccountModels = accountModels;
    }
    return View();
}

Views/Home/Index.cshtml

@{
    Layout = @"~/Views/Shared/_Layout.cshtml";
}

<div class="table-responsive">
    <table class="table table-bordered table-condensed table-hover">
        <caption><h2>Active Accounts</h2></caption>
        <thead>
            <tr>
                <th>Account ID</th>
                <th>Account Name</th>
                <th>Account Address</th>
            </tr>
        </thead>
        <tbody>
            @{
                foreach (var accountModel in ViewBag.AccountModels)
                {
                    <tr>
                        <td>@accountModel.Id</td>
                        <td>@accountModel.Name</td>
                        <td>@accountModel.Address</td>
                    </tr>
                }
            }
        </tbody>
    </table>
</div>

编辑: 现在我注意到只有在“重建并运行”之后才真正刷新站点。这是 IIS Express(我在本地执行此操作)错误吗?

【问题讨论】:

  • 在行动中,您有新数据或旧数据之类的视图?
  • @adricadar 旧数据与视图中相同
  • 嗯,你有没有试过删除记录,看看信息是否还是一样,或者改变一些数据?
  • @Sxntk 我更改了一些数据,但显示了旧数据
  • 可能配置错误XrmServiceContext?您是否根据msdn.microsoft.com/en-us/library/gg695805.aspx(尤其是InstanceMode)检查了您的配置?

标签: c# .net asp.net-mvc linq dynamics-crm


【解决方案1】:

您在 web.config 中为 XRM 上下文配置的内容很重要。默认情况下,服务使用CachedOrganizationService 进行实例化,顾名思义,它会缓存所有数据。

要禁用缓存,请使用以下配置(将 Xrm.XrmServiceContext, Xrm 替换为您自己的 ServiceContext):

<microsoft.xrm.client>
  <contexts>
   <!-- Replace with your actual ServiceContext -->
   <add name="Xrm" type="Xrm.XrmServiceContext, Xrm" serviceName="Xrm" instanceMode="PerRequest"/>
  </contexts>
  <services>
   <!-- Disable cache -->
   <add name="Xrm" type="Microsoft.Xrm.Client.Services.OrganizationService, Microsoft.Xrm.Client"/>
  </services>
</microsoft.xrm.client>

有关默认配置的更多信息,请查看 MSDN 上的Developer extensions context object model

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-24
    • 2019-02-11
    • 1970-01-01
    • 2023-03-26
    • 2020-03-20
    • 2018-04-26
    • 1970-01-01
    • 2014-07-20
    相关资源
    最近更新 更多