问题标签 [azure-caching]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
607 浏览

azure - 间歇性 Azure 模拟器错误:无法加载文件或程序集“XX”文件名或扩展名太长。

使用 Visual Studio 2012 Premium SP1 11.051106.01 和 Emulator 版本 1.8,我收到以下关于每 3-5 次页面刷新的错误。然后我必须停止调试并重新部署到模拟器。

我至少有 5 名开发人员在 Azure 上工作,他们在将 Web 角色部署到 Azure 模拟器时都遇到了同样的问题。我怀疑它与缓存有关,但我不确定从哪里开始寻找。

我检查了我所有的文件路径长度,没有任何路径和文件名超过 220 个字符。Win 7 最多有 260 个字符,所以我不确定还有什么要检查的。

无法加载文件或程序集“Kernel32”或其依赖项之一。文件名或扩展名太长。

无法加载文件或程序集“System.ServiceModel.Web.dll”或其依赖项之一。文件名或扩展名太长。

0 投票
2 回答
140 浏览

azure - Windows Azure 中专用缓存的初始加载

我为专用缓存设置了一个工作角色。在应用程序启动时,我想从数据库加载缓存(最好在 WorkerRole/RoleEntryPoint 的 OnStart() 方法中)。我无法找到如何从专用缓存项目中将对象添加到缓存中(我可以毫无问题地使用其他角色的缓存)。

有谁知道是否最好像其他项目一样创建一个新的 DataCache() 对象,或者是否有更快的内部方法?最终我可能要加载大量数据,所以我希望它尽可能快(也希望最小化跨角色的带宽)。有人对 Azure 中缓存的初始加载有任何提示或最佳实践吗?我一直在寻找一段时间,并没有想出任何东西。

谢谢!

0 投票
2 回答
1201 浏览

azure - Azure DataCache Windows Azure 模拟器出现问题,但未生成错误。应用程序只是挂起

我有一个现有的 mvc4 Web 项目,我想将其部署到云服务并开始使用 azure 数据缓存。

我已将 windows azure 缓存 nuget 包添加到解决方案中的两个项目中,即 web 项目和类库项目,这两个项目都需要这些。

然后,我为 Web 项目添加了一个 Web 角色,并更新了 中的数据缓存标识符引用web.config以指向启用共存缓存的 Web 角色。

当我没有任何数据缓存代码时,我可以在模拟器上本地运行它而不会出现任何问题。但是我输入代码以访问数据缓存的那一刻就是我遇到问题的时候。只是这段代码导致 web 项目挂起:

没有我知道的错误,无论是在 vs 输出中还是从 Web 应用程序生成的错误中,它只是挂起。

开始诊断此问题所在的最佳方法是什么?

更新

我刚刚注意到应用程序事件日志中生成了以下错误:

这是否有助于追踪正在发生的事情?

另一条可能有帮助的信息是,如果我创建一个全新的解决方案,添加一个 Web 角色并启用同位缓存,我可以让它正常工作——它只是看起来特定于这个解决方案。

0 投票
1 回答
1782 浏览

azure - 表存储服务(Azure 的 nosql 实现)与 Windows Azure 缓存(非结构化内存缓存)

我们想在 Azure 中实现缓存有两个主要原因:

  1. 加快重复数据访问
  2. 减轻数据库压力

以下是我们计划缓存的数据的特征:

  1. 相对较小(1 - 100 kb)
  2. 针对每个客户
  3. 不是私人的,但我们真的不希望随机的人浏览我们的整个缓存
  4. XML 或 JSON
  5. 由 C# 使用(即不直接在 html 中链接)
  6. 大多数星期数据不会改变,尽管有些日子数据可能会改变几次

对于这个特定目的,表存储似乎比 Blob 存储更好(我们只是为图像、CSS 和 JavaScript 实现了 Blob 存储)并且Windows Azure 缓存似乎比 Windows Azure 共享缓存更好(也许几乎总是更好,并且共享缓存主要是遗留的此时的功能)。

两者的编程 API 看起来很简单。与我们为云站点支付的费用相比,每个站点的成本似乎可以忽略不计。

到目前为止,由于我们认为 Azure 缓存的优缺点,我们倾向于表存储。作为老 .Net 人,我们对内存缓存比 NoSql 风格的解决方案更熟悉:

Windows Azure 缓存的问题:

  1. 如果将 VM 移动到不同的服务器(由 Microsoft 出于负载平衡或其他原因),内存中的缓存是否会原封不动地移动?
  2. 我们猜测,每当我们将更改发布到云时,它都会清除现有的内存缓存
  3. 虽然用户在进行更改时很少对缓存数据进行更改,但他们可能会在几秒钟内进行多次更新,我们不确定这将如何处理位于运行 Web 角色的多个节点的缓存,尤其是在流量增加的情况下. (这可能也是表存储的一个问题!)
  4. 表存储看起来更容易调试

Windows Azure 缓存的优势

  1. 快一些
0 投票
2 回答
1925 浏览

azure - 连接到新的 Azure 缓存(DataCache、DataCacheFactory 和连接池)

Windows Azure缓存文档

如果可能,存储和重用相同的 DataCacheFactory 对象以节省内存并优化性能。”

有没有人看到任何指标或任何量化这有多昂贵?

一种说法是

“MaxConnectionsToServer 设置...确定每个 DataCacheFactory 向缓存集群打开的通道数。”

因此,如果 MaxConnectionsToServer = 1 并且 DataCacheFactory 是您的应用程序中的单例,那么您已经有效地将所有请求同步到您的 Web 服务器!

但是,有很多迹象 表明 DataCacheFactory 应该是一个单例(即放在 Application_OnStart 中)。

这很关键,我不敢相信它不在 Microsoft 文档中。DataCacheFactory 在 AppFabric、Azure 共享缓存和 Azure 缓存中的处理方式是否相同?我只是很难相信微软以需要单例工厂对象的方式设计缓存。这就像要求任何使用 SqlConnection 的人在他们的应用程序中拥有一个单例 SqlConnectionFactory 对象。

因此,考虑一个相对平均的 Web 应用程序(例如,每小时 1,000 次请求,缓存中约 100 个对象,平均请求访问 5 个缓存对象):

  1. 默认情况下(和推荐)一次应该有多少个工厂对象?
  2. 创建 DataCacheFactory 引用需要多长时间?
  3. 创建 DataCache 引用需要多长时间?
  4. 每个应用程序应该只有 1 个 DataCacheFactory 对象,每个请求只有 1 个 DataCache 引用吗?

编辑(正在进行的答案):

(1/2)。让 Azure 连接池处理工厂对象

(3)。还在测试.​​..

(4)。仍在试图弄清楚我是否应该重新使用 DataCache 引用

0 投票
1 回答
464 浏览

asp.net - 会话状态的 Azure Co-Located-Cache 最大项目大小

我不明白 Co 位于 Azure 共享缓存(预览版)中项目的最大序列化大小为 8mb。我目前正在使用 Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider 将我的会话状态存储在缓存中。

我的问题是会话(所有会话键/值)是否被序列化为一个项目,或者每个键本身不能超过 8MB?

因此,如果我有 10 个密钥,每个密钥具有 1 mb 的数据,它是否超过了 8MB 的限制?

我知道您不应该在会话中存储那些大对象(而且我 99% 的时间都不会)它只是想知道一些边缘情况在我的应用程序中会如何表现。

0 投票
1 回答
398 浏览

azure - 使用 Azure 缓存调试 Web 应用程序

我想找到调试现有 ASP.NET MVC 应用程序的最佳实践。这是已托管在 Azure 中的 Web 角色。该应用程序正在使用 Windows Azure 缓存。配置文件已使用 Azure 帐户的 settgins 定义 ->

我想调试代码。在这种情况下最好的方法是什么?

我已经通过使用 localhost 更改主机进行了测试,但它不起作用。

谢谢,

PS:我已经安装了新的SDK 1.8

0 投票
1 回答
154 浏览

azure - 在 Windows Azure 共享缓存中,无法在美国东部或美国西部地区启动缓存 - 为什么?

尝试开始使用 Windows Azure 共享缓存来存储会话数据。Microsoft 和其他地方的大量帮助文件表明缓存应该与网站位于同一地理区域。(在这一点上,我不使用虚拟机或云服务,只在 Azure 上共享网站)。

问题是,当我按照指示进入旧版门户时,为了创建新缓存,界面将只允许我选择“美国(北部/中部)”和“美国(南部/中部)” “美国(东部)”和“美国(西部)”选项可用,但如果选择,我无法在那里请求缓存。但是我所有的其他 Azure 服务都在美国(东部)。

我想我可以在与我的网站所在的区域不同的区域设置缓存,但这似乎是不明智的。我考虑将我的网站从“美国东部”移动到“美国中北部”,但网站的区域可用性只有“美国东部”和“美国西部”,这两个选项对缓存不可用!

建议?

请注意,我的公司目前还没有准备好使用云服务/虚拟机和基于角色的缓存。

0 投票
1 回答
340 浏览

c# - 在 Azure 缓存中存储大于 8MB 的对象的技术

是否有人对如何在 Azure 缓存中存储大于 8MB 的对象有任何建议。在我的情况下,我使用 byte[] 将文件存储在 blob 中。但是,如果我能以某种方式将 byte[] 拆分为更小的块并将其存储为部分文件,然后在从缓存中检索文件后执行合并。

伪代码:

存储

检索:

  • 这里有任何性能问题吗?

  • 是否有任何其他方式胜过 Azure 缓存?

0 投票
1 回答
171 浏览

asp.net - Azure 并置缓存会话状态(实例失败/更新)

当通过 DistributedCacheSessionStateStoreProvider 用于会话状态时,Azure 同位缓存如何处理实例更新(滚动/增量)或其中一个实例出现故障的情况。

是所有位于同一位置的缓存数据都复制到了所有实例,还是因为故障而丢失了一些数据?

例如,如果请求 #1 由实例 0 处理,然后实例 0 崩溃/更新可以请求由实例 1 处理的请求 #2 继续访问来自先前请求的相同会话状态数据?

任何想法或有人可以指出我描述此类案例的任何好的资源吗?