【发布时间】:2010-02-13 15:27:07
【问题描述】:
问题如下: 外部服务器将转换为 HTTP 请求的传入 SMS 消息发送到我有时非常耗时的 .aspx 页面。如果在 20 秒内没有向外部服务器返回响应,这将被视为超时,并且相同的消息会再次发送到我的 aspx 页面(可能还会再次发送......)
对我来说最佳解决方案是 aspx 页面读取传入消息(作为对 aspx 页面的 HTTP 请求),在另一个线程中开始处理消息,并立即将响应呈现回外部服务器。外部服务器对 HTTP 状态(通常为 200)以外的其他内容不感兴趣。消息处理完成后,会在应用程序的日志文件中生成一个条目。
消息的处理是通过向 aspx 页面发出另一个 Web 请求来完成的,我尝试对 Web 请求使用 BeginGetResponse 方法,并创建了一个处理程序来处理对处理页面的已完成 Web 请求.问题是处理程序似乎没有被调用,很可能是因为 aspx 页面的生命周期在异步 Web 请求完成之前结束。
有没有人解决这个问题的好方法?我也看过异步页面模型,但这似乎也不是我的解决方案,因为响应应该在消息处理完成之前返回到外部服务器。
问候,艾文德
【问题讨论】:
标签: asp.net asynchronous httpwebrequest