【问题标题】:nopCommerce not running modified controller methodnopCommerce 未运行修改后的控制器方法
【发布时间】:2014-12-12 21:58:44
【问题描述】:

我目前正在创建一个基于 nopCommerce 的网上商店,但我需要为每位客户提供独特的产品。 为此,我编辑了 catalogController 以根据我自己的数据库表过滤产品。

当从 Visual Studio 2013 运行 nopCommerce 时,我使用的代码完美运行:为每个客户显示正确的产品,当没有人登录时不显示任何产品。

我将 nopCommerce 部署到我的本地计算机,然后将文件复制到我们的 (IIS7) 网络服务器,之后它也完全按预期工作(无需重新启动服务器)。

重启网络服务器后问题开始出现。如果网络服务器重新启动,每个客户将始终看到每个产品。

出于调试目的,我创建了一个 ActionFilterAttribute 以查看该函数是否仍然被调用(它确实被调用),并且我在已编辑函数的第一行添加了一条日志消息以检查该函数是否运行,结果是该功能不运行。

我怀疑 nopCommerce 在启动应用程序时会缓存类别页面。我知道 nopCommerce 使用缓存,但我找不到有关缓存内容或如何禁用它的任何信息(部分缓存或完全关闭缓存)

【问题讨论】:

  • 如果您不想从缓存中加载您的类别和产品,请在目录和产品控制器中的类别方法和产品方法中查找缓存并删除缓存,然后每次请求中都会获得新的过滤器内容。
  • @Vap 正如我在帖子中解释的那样:该方法永远不会运行。我有一行写入方法顶部的日志文件,并且日志文件没有被写入。对该方法的任何编辑都不会影响任何内容。
  • 不看你的代码,我们很难评论太多。 :)
  • @wooncherk 几乎没有与该问题相关的代码。我可以显示我用来制作日志条目的代码并显示我制作的 ActionFilterAttribute,但任何其他代码都无关紧要,因为它从未达到过,尽管它应该是。

标签: caching nopcommerce


【解决方案1】:

出于测试目的,我想禁用所有缓存。我刚刚更改了 DependencyRegistrar.cs (Nop.Web.Framework) 中的以下两行:

builder.RegisterType<MemoryCacheManager>().As<ICacheManager>().Named<ICacheManager>("nop_cache_static").SingleInstance();
builder.RegisterType<PerRequestCacheManager>().As<ICacheManager>().Named<ICacheManager>("nop_cache_per_request").InstancePerLifetimeScope();

builder.RegisterType<NopNullCache>().As<ICacheManager>().Named<ICacheManager>("nop_cache_static").SingleInstance();
builder.RegisterType<NopNullCache>().As<ICacheManager>().Named<ICacheManager>("nop_cache_per_request").InstancePerLifetimeScope();

这会将缓存管理器更改为“非缓存”管理器。

(我是 NopCommerce 的新手,所以我可能错过了一些东西,但这对我有用。)

【讨论】:

    【解决方案2】:

    我曾经遇到过 IIS 未运行更新代码的问题。您必须确保随时加载正确的 DLL(更新的)。在您的情况下,该文件很可能是 Nop.Web.dll

    检查是否:

    1. 您的引用路径中可能有一个 DLL,它加载并覆盖更新的代码。 在我发现插件的 DLL 以某种方式进入服务器上的“bin”文件夹并覆盖插件文件夹中的实际插件 DLL 之前,我遇到了插件没有更新的问题。

    2. IIS 可能无法正确加载和缓存您更新的 DLL。 在开发机器上,我曾经发现 Temporary ASP.NET files 中的 DLL 不是最新的。关闭 IIS 并清空文件夹会有所帮助,但不幸的是,在我重新安装完整的 Windows 之前,我的问题总是反复出现。

      .NET 4+ 的文件夹路径是C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-12
      • 2016-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多