Используя asp.net MVC в c #, я выполняю вызов хранимой процедуры, используя Linq, в свою таблицу SQL Members. У меня нет внутреннего кэширования в приложении, я уже проверил, чтобы убедиться, что оно отключено.
Контрольный пример:
У меня есть имя пользователя 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, и возвращенный набор результатов имел имя пользователя = test1.
Снова я запустил хранимую процедуру через Management Studio, и она выбрала test2 в качестве имени пользователя. Я ждал 15 минут, обновляя веб-страницу каждые 5 или около того, и она так и не очистилась и подала правильный test2 из БД. Последний странный кусок, я запустил IISReset и обновил страницу, test2 был возвращен.
Полагаю, я просто упускаю из виду нечто очевидное. Любая помощь или совет будут великолепны. Спасибо
ОБНОВЛЕНИЕ: я создал консольное приложение, чтобы вынуть его из Интернета. Проблема та же, что и при доступе напрямую из консольного приложения, без изменений.