Настройка времени ожидания ASP.NET (IE и Chrome) - PullRequest
0 голосов
/ 23 июня 2011

У меня есть веб-приложение asp.net.Он связывается с бизнес-уровнем через WCF.Существует функция, выполнение которой занимает более часа.Это обычный синхронный звонок.В целях тестирования Thread.Sleep используется в бизнес-уровне (сервисе) для воспроизведения этой функции.

System.Threading.Thread.Sleep(4200000);

Я тестирую ее с помощью Visual Studio 2005 dev env (не IIS).Когда я тестировал Chrome в качестве веб-браузера, он может подождать даже через час.Но когда я тестировал с IE6, он выходит из приложения ровно через час, и он переходит на нашу страницу входа.

Любые мысли о том, какие настройки я должен сделать, чтобы не выходить в IE даже после1 час?

Примечание. Эта функция используется только один раз в месяц только администратором.Так что для нас это нормально - два часа.[Создание чего-то вроде приложения Windows для администратора может быть идеальным.Но мы не можем думать об этом в данный момент.].Также мы не можем создавать любые другие Ajax-вызовы или дуплексные службы - эти вещи не разрешены клиентом.Таким образом, единственное решение - это изменение настроек для IE (либо в IE, либо в ASP.NET)

Примечание. WCF самостоятельно размещается для тестирования.Это NetTCPBinding в WCF.

Спасибо

Lijo

Ответы [ 2 ]

0 голосов
/ 29 июня 2011

Если у вас есть контроль над службой WCF, то я рекомендую вам реорганизовать ваш код.

Не рекомендуется, чтобы такой длительный процесс происходил синхронно.

Если выЗнайте, что это займет много времени, и вы не будете беспокоиться о том, что вы можете использовать службу OneWay, тогда вашему клиенту не придется ждать ответа.

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

Другое решение состоит в том, чтобы использовать службу OneWay, а затем создать другую службу, которая запрашивает, завершена ли операция, как рекомендует Pete2k

0 голосов
/ 23 июня 2011

Добавьте это в ваш Web.config, чтобы увеличить время, в течение которого сеанс остается активным:

<configuration>
<system.web>
    <sessionState mode="SQLServer" sqlConnectionString="Data Source=vls.dev.videolibraryserver.com;User Id=sa;Password=test;" timeout="300" />
</system.web>
</configuration>

ПРИМЕЧАНИЕ: измените значение времени ожидания

Затем напишите элемент управления ajax, который опрашиваетслужба WCF, когда она будет завершена, перезагрузите страницу.

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