C# ASP.NET缓存和AJAX调用
我正在从事一个ASP.NETMVC3项目,我正在使用Ajax jquery与我的控制器通信。在更新数据库(SQL Azure)之前,我使用asp.net缓存存储结果 该应用程序运行良好,但并非适用于所有用户 当一些用户试图更新数据库时,传递给my DAL对象的内容为空 这只是发生在网络上的用户身上 我对此没有任何解释C# ASP.NET缓存和AJAX调用,c#,asp.net,jquery,azure,azure-sql-database,C#,Asp.net,Jquery,Azure,Azure Sql Database,我正在从事一个ASP.NETMVC3项目,我正在使用Ajax jquery与我的控制器通信。在更新数据库(SQL Azure)之前,我使用asp.net缓存存储结果 该应用程序运行良好,但并非适用于所有用户 当一些用户试图更新数据库时,传递给my DAL对象的内容为空 这只是发生在网络上的用户身上 我对此没有任何解释 感谢您的帮助。以下是您需要回答的问题列表,以便获得适当的帮助: 您的应用程序有多少个实例正在运行 此应用程序在何处运行,是否在本地网络或外部托管 当你说“在网络上工作的用户”时,你
感谢您的帮助。以下是您需要回答的问题列表,以便获得适当的帮助:
您需要做的是设置一个分布式缓存,允许您在多个实例之间缓存数据。您可以为此使用Azure缓存(但它很昂贵!)
设置缓存相当简单,只需遵循以下指南:您使用的是哪种缓存?ASP.NET的InProc缓存或分布式缓存(例如存储在SQL Azure或表存储中)?因为如果有多个实例,缓存需要在它们之间共享。我使用的是InProc缓存模式。是代理导致了问题吗?问题是代理客户端禁用了代理上的缓存,应用程序工作正常。1-目前只有一个实例,但客户端提供了部署多个实例的功能。2-该应用程序运行在windows azure 3上-该应用程序可供所有用户访问4-是的,ajax调用通过代理传递如何为运行在多个实例上的应用程序使用分布式缓存?我很高兴您的问题得到解决。我已编辑我的回复以使用Windows Azure缓存。谢谢。有没有一种方法可以在没有Azure缓存的情况下在分布式缓存中工作分布式缓存的概念是在实例之外使用实体,因此,您可以使用Azure存储、SQL Azure或第三方服务。或者您可以使用Memchache解决方案集成到您的应用程序中。但是,当您尝试构建自己的解决方案以使用这些实体中的任何一个时,构建和维护此类代码的成本可能会更高,最后,速度是主要因素。Windows Azure缓存将是最快的可用缓存,因此支付一点费用不会对您造成伤害,因为您可以更轻松、更快地实现您的目标,而且您确实为此付出了代价。
function SaveCustomersList() {
$.ajax({
type: "POST",
url: '/Customers/SaveCustomersList/',
data: "",
cache: false,
dataType: "text",
success: function (data) {
return true;
}
});
}