在c#中使用asp.net MVC,我使用Linq將存儲過程調用到我的SQL成員表中。我沒有內部緩存的應用程序,已經檢查,以確保它關閉。使用Linq ASP.NET MVC奇怪的緩存問題
測試案例: 我將我的用戶名設置爲test1。在網站上,我將用戶名更改爲test2。該網站仍顯示test1。我去了Management Studio並運行名爲MemberByEmail的存儲過程,它正確顯示了test2。
我開始簡單,刷新我的頁面,看看它是否是瀏覽器緩存,仍然是test1。我去調試和遍歷代碼,並發現它去正確地一路這裏調用數據庫:
/// <summary>Method that is mapped to the dbo.MemberByEmail database procedure.</summary>
/// <returns></returns>
[System.Data.Linq.Mapping.Function(Name="dbo.MemberByEmail")]
public System.Data.Linq.ISingleResult<BookCrossing.Data.Member> MemberByEmail(
[System.Data.Linq.Mapping.Parameter(DbType="nvarchar(100)")] string email)
{
var methodInfo = (System.Reflection.MethodInfo)System.Reflection.MethodInfo.GetCurrentMethod();
var result = this.ExecuteMethodCall(this, methodInfo, email);
return ((System.Data.Linq.ISingleResult<BookCrossing.Data.Member>)(result.ReturnValue));
}
我打開探查我的SQL數據庫,它實際上顯示MemberByEmail條目,並且返回的結果集具有username = test1。
我再次通過Management Studio運行存儲過程,並且它以test2作爲用戶名。我等了15分鐘,每隔5次刷新一次網頁,並且它從未清除過,並從db中提供正確的test2。最後一個奇怪的部分,我運行IISReset並刷新頁面,test2被返回。
我猜這個我只是忽略了一些明顯的東西。任何幫助或建議都會很棒。謝謝
更新:我創建了一個控制檯應用程序來取出它的web部分。直接從控制檯應用程序訪問時,問題也是一樣,沒有變化。
您是否緩存網頁?在頁面指令中,您可以設置緩存... – 2010-09-08 05:41:39
感謝您的評論。頁面緩存已關閉。我已經開啓了調試過程,並逐步排除了這一過程,並將其排除在外。它一路走到SQL(探查器有它的記錄),當它回來時,我可以用username = test1而不是test2來查看我的成員對象。 – Matt 2010-09-08 12:53:16