powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Асинхронный запрос сервисной страницы
10 сообщений из 10, страница 1 из 1
Асинхронный запрос сервисной страницы
    #33984873
OKey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Такая проблема: имеется сервисная страничка 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'
...
Рейтинг: 0 / 0
Асинхронный запрос сервисной страницы
    #33985244
-=Andreika=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня почти тажа проблема, но дело в том что нужно вызывать асинхронно страницу из клиента. Пока единственным выходом нашел использоване Web Сервисов и вызов их из клиента при помощи Behavior, хоть вариант и рабочий но меня не устраивает, поскольку не всегда срабатывает. Хотелось бы чтонибудь вроде нажал на кнопочку "index.asp?sess_id=19&phone=12345678" и ушел запрос на сервер там отработал. Возврат не нужен, т.к. нужно остаться на странице без ее перезагрузки.
...
Рейтинг: 0 / 0
Асинхронный запрос сервисной страницы
    #33985263
Фотография ЧеГевара
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=Andreika=-У меня почти тажа проблема, но дело в том что нужно вызывать асинхронно страницу из клиента. Пока единственным выходом нашел использоване Web Сервисов и вызов их из клиента при помощи Behavior, хоть вариант и рабочий но меня не устраивает, поскольку не всегда срабатывает. Хотелось бы чтонибудь вроде нажал на кнопочку "index.asp?sess_id=19&phone=12345678" и ушел запрос на сервер там отработал. Возврат не нужен, т.к. нужно остаться на странице без ее перезагрузки.
не совсем понял в чем проблема.
или подобных обращений к серверу, не нуждающихся в ответе достаточно много?
если просто посылать запрос с открытием нового окна, который не будет виден пользователю. например тот же нулевой ифрейм. а веб сервер отработает.
или я что то не понял?
...
Рейтинг: 0 / 0
Асинхронный запрос сервисной страницы
    #33985286
Фотография SkyLight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AJAX
...
Рейтинг: 0 / 0
Асинхронный запрос сервисной страницы
    #33986314
-=Andreika=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну впринципе вы все поняли правильно. Вопрос стоит в том, что "Как это сделать?". Можно в принципе послать запрос с открытием нового окна, которое не бдет видно клиенту. Но дело в том, что "фокус" должен остаться на предыдущей форме.
...
Рейтинг: 0 / 0
Асинхронный запрос сервисной страницы
    #33986466
OKey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос состоит в том, что нужно с сервера это сделать. Конечно заставить клиента после открыть дополнительное окошко не проблема, но как-то это грязно. Неужели это такая нетривиальная проблема?
Олег Козлов aka 'OKey'
...
Рейтинг: 0 / 0
Асинхронный запрос сервисной страницы
    #33987006
Sobaka WWW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно не просто AJAX, а ATLAS ))) Но уже тогда просить клиента, перед началом работы со странией загружать пол метра с микрософта и устанавливать эту атласу))
...
Рейтинг: 0 / 0
Асинхронный запрос сервисной страницы
    #33987043
OKey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Госпади, не нужно мне ничего такого! У меня есть серверный код на C#, с помощью которого явно можно всё сделать. Я сейчас ковыряю... :]Олег Козлов aka 'OKey'
...
Рейтинг: 0 / 0
Асинхронный запрос сервисной страницы
    #33987122
OKey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ларчик просто открывался.
HttpWebRequest objRequest = (HttpWebRequest)HttpWebRequest.Create(sUrl);
objRequest.Method = "GET";
try {
     objRequest.Timeout = 1000; //Можно и меньше секунды
     objRequest.GetResponse();
} catch {}


Олег Козлов aka 'OKey'
...
Рейтинг: 0 / 0
Асинхронный запрос сервисной страницы
    #33987150
OKey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть, конечно, дальнейшие осложнения. В моей задаче сервисная страница лежит в папке защищенной Forms Authorisation. Эта проблема у меня и раньше была: http://www.gotdotnet.ru/Forums/Web/232039.aspx Найденный тогда выход - Server.Execute(sUrl) в данной ситуации не подходит (в той тоже, кстати, не подошел), поэтому придется всё же проламывать вот такой вариант: http://www.aspnetmania.com/Articles/Article/14.html

Но, в принципе, как видите, господа, никакой грязи не потребовалось, надо начать и оборвать запрос через секунду - в коде он начинается и обрывается, всё логично и лаконично. Кул!...
Олег Козлов aka 'OKey'
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Асинхронный запрос сервисной страницы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]