SQL Server «Истекло время ожидания операции» при вставке записей на удаленном сервере, но не локальноC#

Место общения программистов C#
Anonymous
SQL Server «Истекло время ожидания операции» при вставке записей на удаленном сервере, но не локально

Сообщение Anonymous »

Существует странная проблема с развернутым приложением Windows, которое использует строку удаленного подключения к SQL Server 2012.

При вставке записей время ожидания SQL Server через относительно короткое время истекает, сообщая: «Тайм-аут операции ожидания истек». Я не могу отладить развернутое приложение, чтобы выяснить, почему это происходит и в каком месте кода это происходит.

Однако я не получаю эту ошибку при использовании той же базы данных на компьютере разработки с локальным подключением.

Обычно используется следующий код:

Код: Выделить всё

void MapData( SqlTransaction transaction, Dictionary items )
{
foreach ( var i in items )
{
transaction.Save( "CHECKPOINT" );

try
{
ImportItem( transaction, i );
}
catch ( Exception e )
{
transaction.Rollback( "CHECKPOINT" );
}
}

ReportStatus();
}
Хотя этот код работает, я не уверен в удаленных соединениях. У нас есть только один случай, когда он НЕ работает.

Что это может быть?
Есть ли более надежный и эффективный подход, чем использование Save() и Rollback() в цикле?
Я не хочу использовать TransactionScope для создания новых «дочерних» транзакций.

Спасибо!

Вернуться в «C#»