asp.net 4.5 async를 처음 사용했으며 async 메서드 내에서 response.redirect를 호출하여 다음을 실행했습니다. 문제는 응답이 "멈춤"입니다. 비동기로 리디렉션을 시도 할 때 비슷한 문제가 발생한 경험이 있습니까? 이 코드는 새로운 프로젝트에서 작동하지만 기존 코드의 새 페이지에서는 작동하지 않습니다. 우리 web.config에서 모든 것을 제거하고 마스터 페이지를 제거했습니다. 벽돌 벽을 때리면 ... 어떤 생각? 감사!Asp.net async와의 Response.Redirect 문제
protected void Page_Load(object sender, EventArgs e)
{
RegisterAsyncTask(new PageAsyncTask(PageLoadAsync));
}
private async Task PageLoadAsync()
{
var data = await GetData();
if (data == HttpStatusCode.OK)
Response.Redirect("http://www.google.com");
}
private async Task<HttpStatusCode> GetData()
{
using (var client = new HttpClient())
{
var response = await client.GetAsync("https://www.google.com");
return response.StatusCode;
}
}
비동기 스레드에서'Redirect'를 실행할 수 있다고 생각하지 않습니다. –
왜 비동기가 필요한지 모르겠지만 HttpClient가 페이지로드/렌더링을 완료하기 전에 응답 할 때까지 기다려야합니다. 그리고 당신은 동시에 여러 가지 일을하지 않습니다. btw : 인터넷에 연결되어 있으면 google이 항상 작동합니다.) –
그는 I/O 집약적 인 작업 (원격 요청에 HTTP 요청 보내기) 때문에 비동기가 필요합니다. 이 리소스가 응답하는 데 오랜 시간이 걸린다 고 상상해보십시오. 이 시간 동안 ASP.NET 작업자 스레드를 위험에 빠뜨릴 수 있습니다. 이제이 엔드 포인트에 200 명의 사용자가 동시에 방문한다고 가정 해보십시오. 요청을 처리 할 수있는 작업자 스레드가 없으므로 사이트가 죽을 것입니다. 그래서이 경우 비동기를 사용하는 것이 매우 중요합니다. –