我正在使用Cloud-Hosted ZipFile创建服务。
这是一个跨源WebApi2服务,用于从无法托管任何服务器端代码的文件系统提供ZipFiles。
基本操作如下:
string[]
个与文件位置相关的网址的POST请求HttpResponseMessage
为了处理故障单系统,我的设计方法是设置一个全局字典,将随机生成的10位数字与List<String>
值配对,字典与Queue
配对一次存储10,000个条目。 ([参考这里] [1])
部分原因是WebApi不支持Cache
当我在本地进行AJAX调用时,它会100%有效地工作。当我远程拨打电话时,它的工作时间约占20%。
当它失败时,这就是我得到的错误:
The given key was not present in the dictionary.
意思是,在全局字典对象中找不到票号。
我们(在Stack的帮助下)将问题跟踪到云中的多个服务器。
在这种情况下,有三个。
这并不意味着这种工作有三分之一的机会,似乎正在发生的事情是:
现在,我确信我们可以创建一个数据库来处理请求,但在这些机器之间保持状态似乎要做得更多。
这些计算机是否有任何非数据库方式在所有会话中保持相同的Dictionary
并且不涉及设置第四台机器来处理队列?
答案 0 :(得分:1)
字典只是为了拥有一个操作队列?
看来你需要:
答案 1 :(得分:0)
如果您的ASP.NET Web应用程序使用会话状态,则需要配置外部会话状态提供程序(Redis缓存服务或SQL Server会话状态提供程序)。
有一个分步指南here。