Как мне «создать единый экземпляр» веб-портала ASP.Net AJAX? - PullRequest
0 голосов
/ 22 октября 2008

Меня спросили, можем ли мы по выбору «единый экземпляр» нашего веб-портала. Увидеть этот пост в блоге Хансельмана за ту же идею в приложении WinForms.

Предположим, у нас есть 2 ярлыка на одном клиентском компьютере:

http://MyServer/MyWebPortal/Default.aspx?user=username&document=Foo http://MyServer/MyWebPortal/Default.aspx?user=username&document=Bar

При нажатии на первый ярлык запустится наш веб-портал, войдите в систему и отобразите документ «Foo». При нажатии на второй ярлык должен отобразиться документ «Панель» в работающем экземпляре веб-портала.

Мой текущий подход заключается в следующем: при загрузке страницы для первого экземпляра создайте переменную приложения для каждого клиента. Второй экземпляр ищет переменную Application, чтобы увидеть, работает ли портал на клиенте. Если это так, второй URL-адрес записывается в другую переменную приложения, а второй экземпляр принудительно завершается. Я попытался создать таймер ASP.Net AJAX для опроса переменной приложения для отображения документа. Такого рода работы. Чтобы быстро ответить на второй запрос, я установил интервал таймера на 2 секунды. Это раздражает использование портала из-за частых обратных передач.

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

Заранее спасибо

1 Ответ

2 голосов
/ 22 октября 2008

На стороне сервера нет способа контролировать, какой экземпляр браузера открывается на вашей странице на клиенте. Вы не можете принудительно открыть все запросы в одном окне браузера.

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

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

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