Кэширует ли WCF хранимые процедуры - PullRequest
3 голосов
/ 26 мая 2011

У меня есть служба WCF, которую мой клиент звонит, чтобы сказать ей, что нужно запустить storedprocedure1, с param1, param2 и т. Д.

Когда служба WCF получает этот вызов, она создает экземпляр класса, который создает класс DAO. Класс DAO создает соединение, загружает параметры в объект SqlCommand, а затем выполняет объект.

После завершения он закрывает SqlConnection, но не закрывает и не удаляет класс DAO, потому что нужно выполнить несколько процедур.

Вот проблема. Если я отредактирую storedprocedure1 и затем вызову его через службу WCF, изменения, внесенные в storedprocedure1, не будут отражены, пока я не перезапущу службу WCF. Это как storedprocedure1 кэшируется в WCF.

Кто-нибудь еще испытывал это, и есть ли решение?

Ответы [ 2 ]

2 голосов
/ 26 мая 2011

Я думаю, что служба WCF кэширует результаты хранимой процедуры.

См. http://msdn.microsoft.com/en-us/library/ee230443.aspx

0 голосов
/ 27 мая 2011

Я думаю, что ключ, скорее всего, заключается в этом утверждении:

, но не закрывает и не удаляет класс DAO

Без просмотра кода для вашего класса DAO это сложноскажем, но кажется более вероятным, что результат запроса кэшируется вашим уровнем доступа к данным, чем то, что он кэшируется WCF.

В любом случае, это действительно не имеет ничего общего с хранимой процедурой,это просто кэширование результата выполнения хранимой процедуры.Если вы изменили данные, а не изменили процедуру, такая же проблема должна существовать - вы получите устаревшие данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...