有没有办法让Web服务(WCF / ASMX / etc)调用在返回结果后进行一些处理?注意我不是在寻找异步调用,因为在额外处理完成之前,客户端需要尽快返回结果。
主要的限制是,据我所知,我在服务器上运行代码的唯一方法是通过ASP页面或Web服务。
这可以通过产生后台线程来完成吗?
答案 0 :(得分:1)
您想要一个客户不了解或控制成功的副作用?即使您返回立即同步答案, 也是异步处理。如果结果是可观察的并且客户感兴趣,那么您应该有一些方法让客户和运营商确定它是否在之后成功。
这取决于您如何托管您的Web服务(与提供通信和激活层的WCF正交)。普通的Web服务托管不允许您处理WS调用之外的事情,主要是为了防止您在脚下拍摄并吃掉所有服务器资源。
产生另一个线程很容易,但IIS不应该允许你自由地做,特别是如果它在任何类型的多应用程序web酒店中运行。
答案 1 :(得分:1)
那么,您的Web服务很可能会托管在Windows服务器上,对吧?你可以做任何事情:
我认为你的选择真的很无穷无尽。但是 - 它们本身并不直接属于Web服务的一部分 - 在 Web服务调用结束之前,您必须将它们从中删除。 ASMX或WCF中没有任何内容允许您“发送请求然后继续执行” - 您的服务方法在完成后发送响应。
马克