Async HttpWebRequest sem espera de um aplicativo Web
No meu aplicativo Web (ASP.NET), tenho um bloco de código que usa HttpWebRequest para fazer uma chamada para um serviço REST e continuar a execução. No momento, está demorando mais do que eu gostaria de concluir a solicitação da Web completa. O fato é que o serviço REST retorna não é útil. Idealmente, gostaria de enviar uma solicitação da Web assíncrona ao serviço REST e depois NÃO esperar por uma resposta. O problema é que eu tentei usando
request.BeginGetResponse(New AsyncCallback(AddressOf myFunc), Nothing)
Para iniciar uma solicitação assíncrona e, em vez de NÃO esperar (o que eu assumiria que seria o comportamento padrão de uma solicitação assíncrona), ele executa continuamente a função de retorno de chamada antes de executar a próxima linha de código apósBeginGetResponse
.
Suspeito que o ASP.NET possa convertê-lo em uma solicitação de sincronização quando estiver dentro de um aplicativo Web. Sou levado a acreditar nisso porque há umaIAsyncResult result
objeto que é passado para a função de retorno de chamada e quando examino suaCompletedSynchronously
propriedade é sempre definida como true.
Alguém sabe se é possível fazer um HttpWebRequest assíncrono (sem espera) de dentro de um aplicativo Web ASP.NET ou é sempre convertido em uma solicitação síncrona?