调用Web服务的最佳实践/常用模式(ASP.NET)

6

问题:

  • 我们有一个Web应用程序,从页面异步调用一些Web服务。
  • 通常这没问题,但是在负载测试下有些服务会失败(因为超时)。

对于在Web应用程序中异步调用Web服务,是否有任何建议的“最佳实践”?

  • 是否有任何可用的模式?
  • 应该避免直接调用服务吗?(也许可以采用其他方法,如AJAX)?

举例说明-直接调用:

WSNameSpace.WSName svc = new WSNameSpace.WSName();
svc.EventName += new WSNameSpace.EventNameEventHandler(CallbackDelegate);
svc.ServiceMethodAsync(param1, param2);
  • 我应该更注重改善异常处理而不是调用服务吗?

非常感谢。

罗布

更新

我已经搜索了谷歌并找到了这篇文章关于创建“服务代理”,虽然它与WinForms有关,但我一定会坐下来仔细阅读,看看它对我的想法有何影响 :)


嗨,罗布 - Ui需要知道结果是否失败吗?由于您将其称为异步,并且您所做的只是传递一些参数-您真的在等待结果吗? - littlegeek
嗨,是的,例如如果服务出现问题,它会返回一个失败的结果,然后在用户界面中更新以让用户知道。 - Rob Cooper
我猜失败可能会导致界面与其他部分不同步,也就是说,页面可以继续,你只需要告诉他们某些(内容)失败了并转而处理这个失败 - 因此采用异步调用。如果是这种情况,我会将异步调用AJAX化,并在失败上构建一个观察者模式。 - littlegeek
想把这个放到答案里,这样人们就可以投票/讨论了吗? ;) - Rob Cooper
1个回答

4

谢谢您的文章,我稍后会花一些时间来认真消化。看起来它可能非常有用。从我这里+1。 - Rob Cooper
那个链接最终会引导你到http://www.eggheadcafe.com/articles/20060918.asp。 - bmm6o

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接