Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Асинхронный запрос сервисной страницы
|
|||
|---|---|---|---|
|
#18+
Добрый день! Такая проблема: имеется сервисная страничка indexer.aspx обращение к которой с определенными параметрами запускает долгую (до часа) процедуру обновления базы поискового сервера. Мне нужно в приложении обратиться к этой страничке и, не дожидаясь ответа, продолжить работу. Ответ страницы меня не интересует. Всё что накопал к данному моменту не работает: Класс для передачи данных: public class RequestState { const int BufferSize = 1024; public StringBuilder RequestData; public byte[] BufferRead; public WebRequest Request; public Stream ResponseStream; // Create Decoder for appropriate enconding type. public Decoder StreamDecode = Encoding.UTF8.GetDecoder(); public RequestState() { BufferRead = new byte[BufferSize]; RequestData = new StringBuilder(String.Empty); Request = null; ResponseStream = null; } } Собственно вызов страницы: WebRequest webRequest = WebRequest.Create("http://localhost/БЛА-БЛА/indexer.aspx); RequestState requestState = new RequestState(); requestState.Request = webRequest; IAsyncResult asyncResult = (IAsyncResult) webRequest.BeginGetResponse(new AsyncCallback(RespCallback), requestState); Callback метод для принятия ответа: private void RespCallback(IAsyncResult acynchronousResult) { RequestState requestState = (RequestState)acynchronousResult.AsyncState; WebRequest webRequest = requestState.Request; WebResponse webResponse = webRequest.EndGetResponse(acynchronousResult); webResponse.Close(); } Запрос вроде осуществляется, callback метод запускается, но вот к странице никто не обращается. И еще адрес страницы приходтся указывать абсолютный, относительный генерит исключение почему-то... Может есть пути попроще, или, если нет, то что у меня неверно? Спасибо!...Олег Козлов aka 'OKey' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2006, 16:47 |
|
||
|
Асинхронный запрос сервисной страницы
|
|||
|---|---|---|---|
|
#18+
У меня почти тажа проблема, но дело в том что нужно вызывать асинхронно страницу из клиента. Пока единственным выходом нашел использоване Web Сервисов и вызов их из клиента при помощи Behavior, хоть вариант и рабочий но меня не устраивает, поскольку не всегда срабатывает. Хотелось бы чтонибудь вроде нажал на кнопочку "index.asp?sess_id=19&phone=12345678" и ушел запрос на сервер там отработал. Возврат не нужен, т.к. нужно остаться на странице без ее перезагрузки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2006, 18:24 |
|
||
|
Асинхронный запрос сервисной страницы
|
|||
|---|---|---|---|
|
#18+
-=Andreika=-У меня почти тажа проблема, но дело в том что нужно вызывать асинхронно страницу из клиента. Пока единственным выходом нашел использоване Web Сервисов и вызов их из клиента при помощи Behavior, хоть вариант и рабочий но меня не устраивает, поскольку не всегда срабатывает. Хотелось бы чтонибудь вроде нажал на кнопочку "index.asp?sess_id=19&phone=12345678" и ушел запрос на сервер там отработал. Возврат не нужен, т.к. нужно остаться на странице без ее перезагрузки. не совсем понял в чем проблема. или подобных обращений к серверу, не нуждающихся в ответе достаточно много? если просто посылать запрос с открытием нового окна, который не будет виден пользователю. например тот же нулевой ифрейм. а веб сервер отработает. или я что то не понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2006, 18:33 |
|
||
|
Асинхронный запрос сервисной страницы
|
|||
|---|---|---|---|
|
#18+
AJAX ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2006, 18:43 |
|
||
|
Асинхронный запрос сервисной страницы
|
|||
|---|---|---|---|
|
#18+
Ну впринципе вы все поняли правильно. Вопрос стоит в том, что "Как это сделать?". Можно в принципе послать запрос с открытием нового окна, которое не бдет видно клиенту. Но дело в том, что "фокус" должен остаться на предыдущей форме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2006, 11:06 |
|
||
|
Асинхронный запрос сервисной страницы
|
|||
|---|---|---|---|
|
#18+
Вопрос состоит в том, что нужно с сервера это сделать. Конечно заставить клиента после открыть дополнительное окошко не проблема, но как-то это грязно. Неужели это такая нетривиальная проблема? Олег Козлов aka 'OKey' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2006, 11:41 |
|
||
|
Асинхронный запрос сервисной страницы
|
|||
|---|---|---|---|
|
#18+
Можно не просто AJAX, а ATLAS ))) Но уже тогда просить клиента, перед началом работы со странией загружать пол метра с микрософта и устанавливать эту атласу)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2006, 13:34 |
|
||
|
Асинхронный запрос сервисной страницы
|
|||
|---|---|---|---|
|
#18+
Госпади, не нужно мне ничего такого! У меня есть серверный код на C#, с помощью которого явно можно всё сделать. Я сейчас ковыряю... :]Олег Козлов aka 'OKey' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2006, 13:39 |
|
||
|
Асинхронный запрос сервисной страницы
|
|||
|---|---|---|---|
|
#18+
Ларчик просто открывался. HttpWebRequest objRequest = (HttpWebRequest)HttpWebRequest.Create(sUrl); objRequest.Method = "GET"; try { objRequest.Timeout = 1000; //Можно и меньше секунды objRequest.GetResponse(); } catch {} Олег Козлов aka 'OKey' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2006, 13:55 |
|
||
|
Асинхронный запрос сервисной страницы
|
|||
|---|---|---|---|
|
#18+
Есть, конечно, дальнейшие осложнения. В моей задаче сервисная страница лежит в папке защищенной Forms Authorisation. Эта проблема у меня и раньше была: http://www.gotdotnet.ru/Forums/Web/232039.aspx Найденный тогда выход - Server.Execute(sUrl) в данной ситуации не подходит (в той тоже, кстати, не подошел), поэтому придется всё же проламывать вот такой вариант: http://www.aspnetmania.com/Articles/Article/14.html Но, в принципе, как видите, господа, никакой грязи не потребовалось, надо начать и оборвать запрос через секунду - в коде он начинается и обрывается, всё логично и лаконично. Кул!... Олег Козлов aka 'OKey' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2006, 13:59 |
|
||
|
|

start [/forum/topic.php?fid=18&fpage=880&tid=1389615]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
80ms |
get tp. blocked users: |
1ms |
| others: | 265ms |
| total: | 426ms |

| 0 / 0 |
