【发布时间】:2018-03-04 06:10:45
【问题描述】:
是否可以使用 httpclient 在 ASMX WebMethod 中调用 REST 服务? httpclient 库是异步的,因为 asmx 不支持异步等待(TAP),所以我使用 .Result 来强制调用同步。但是,这次 httpclient 无法成功调用,我得到远程服务器主动拒绝连接错误。如果我使用 async await 或 .Result 在 win forms 应用程序中运行相同的代码,它可以正常工作。
这是 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 客户端 = new HttpClient(); var tt = Task.Run(() => client.GetAsync("immanuel.co")).Result; -- 变量 tt 现在包含响应及其完全同步
-
@Immanuel,您在 Asp.Net 中做了两件不应该做的事情 -
.Result和Task.Run()。 Don't block on async code
标签: c# web-services asynchronous asmx