Pol*_*Pol 7 .net c# asp.net iis web-services
在WebForms ASP.NET站点(IIS,单个应用程序池)中,我调用了Visual Studio中引用的冗长Web服务方法作为服务引用(.NET 4.0).不幸的是,在向用户提供页面之前,我必须等待来自Web服务的信息.当前Web服务是同步调用的,因此服务器无法重用当前线程来处理对性能有影响的其他请求.
当然我可以在Visual Studio中为服务引用生成异步操作BeginGetFoo而不是调用GetFoo,但我仍然必须等待来自Web服务的结果.
这是个问题.如果我使用AsyncWaitHandle.WaitOne(如下所示),我今天使用的同步调用在整个应用程序性能方面是否会更好?
IAsyncResult result = fooSoapClient.BeginGetFoo();
result.AsyncWaitHandle.WaitOne();
var foo = fooSoapClient.EndGetFoo(result);
Run Code Online (Sandbox Code Playgroud)
当然,如果等待可以做得更好,我愿意接受建议.
Joh*_*ers 10
您想使用异步页面.请参阅" Wicked Code:ASP.NET中使用异步编程的可伸缩应用程序 ",以及ASP.NET 2.0中的异步页面,它使用RegisterAsyncTask讨论Web服务和异步任务.
| 归档时间: |
|
| 查看次数: |
5797 次 |
| 最近记录: |