에서 httpclient를 사용하면 httpclient를 사용하여 ASMX WebMethod에서 REST 서비스를 호출 할 수 있습니까? httpclient 라이브러리가 async이고 asmx가 async await (TAP)를 지원하지 않기 때문에 .Result를 사용하여 호출을 동기화하도록합니다. 그러나 이번에는 httpclient가 성공적으로 전화를 걸 수 없으며 원격 서버가 연결 오류를 적극적으로 거부합니다. async await 또는 .Result를 사용하여 win forms 응용 프로그램에서 동일한 코드를 실행하면 정상적으로 작동합니다.asmx webmethod
이 문제는 ASMX WebMethod에서 발생합니까?
[WebMethod]
public void Get(){
//Sample (off the top of my head)
HttpClient client = new HttpClient();
//more code
Task.Run(()=> client.GetDocument()).Result;
}
감사
HttpClient를 새로운 클라이언트 = HttpClient를(); var tt = Task.Run (() => client.GetAsync ("http://immanuel.co")) 결과입니다. - 변수 tt가 이제 응답을 포함하고 그것의 완전 동기화 – Immanuel
@Immanuel, 당신은 Asp.Net에서하지 말아야 할 두 가지 일을했습니다 -'.Result'와'Task.Run()'. [비동기 코드 차단 금지] (https://blog.stephencleary.com/2012/07/dont-block-on-async-code.html) – Crowcoder