【发布时间】:2012-04-08 01:45:25
【问题描述】:
我有一个当前调用 Java WebService 的 ASP.NET Webform。 ASP.NET Webform 是在内部创建/维护的,而 Java WS 是一个包解决方案,我们只有一个应用程序的 WS 接口。
问题是,由于系统负载等原因,Java WS 有时响应缓慢,对此我无能为力。所以目前在 ASP.NET Webform 上存在很长的延迟,有时如果 Java-WS 响应缓慢,有时会导致 ASP.NET 达到其超时值并抛出连接。
我需要确保这两个应用程序之间的数据连接,我可以通过增加超时值来做到这一点,但我不能让 ASP.NET 表单等待超过几秒钟。
这就是排队系统的想法出现的地方。
我的想法是,让 ASP.NET 表单构建soap请求,然后将其排入本地队列,然后守护进程运行并在Java-WS上触发请求。
在我从头开始构建之前,我需要一些指导。
- 我的解决方案可行吗?
- 是否有任何库等可供我使用?
- 有没有更好的方法来实现我正在寻找的东西?
【问题讨论】:
-
您还在使用 ASMX Web 服务吗?这是一项遗留技术,您应该改用 WCF。
-
他没有使用 ASMX。它是一个调用 Java Web 服务的 Web 表单。话虽如此,您是否考虑过异步调用 Java Web Service。
-
@William yes 已经考虑过这一点,但是一旦将请求发送到 Web 服务异步,Web 窗体就会关闭并且用户返回到调用系统,因此不会有实例如果你得到我,一个回调返回。
-
是的,您需要阅读 WCF。它在六年前取代了 ASMX!请参阅WCF vs. ASMX Web Services 和wcf 标签。
-
最重要的区别是您可以在任何类型的应用程序中托管 WCF 服务,包括 Windows 服务,而无需 Web 服务器。由于 Windows 服务永远不会停止(除非有异常,请小心!)它可以公开 Web 服务(WCF 服务公开为 WS 端点)。此 Windows 服务可以充当代理接收来自 ASP.NET 应用程序的调用,并将它们作为对 java Web 服务的异步请求进行处理,因此它不会锁定并可以参与更多的传入呼叫。当 java web 服务给出响应时,可以在回调函数中进行处理。
标签: asp.net wcf web-services msmq message-queue