>我在global.asax的Application_Start()中运行后台线程像Windows服务一样使用它但是当所有会话在我的网站上结束时applicaton_end触发
我有一个与网络服务一起工作的短信业务,我想在我的服务器中有代理检查传入消息,如Windows服务
我将会话超时增加到 10 小时,但当我关闭浏览器应用程序时,结束触发和我的线程停止工作
我无法更改服务器属性
我可以禁用线程application_end继续工作吗?
我向你道歉,因为英语写作不好
您应该创建一个单独的程序,作为服务或批处理程序运行来执行此操作。尽管 ASP.NET 在页面加载之间保留静态变量等,但您不应该使用它在后台运行内容。不能保证事情会继续运行。
如果您需要在服务器上发生某些事情时在用户端发生某些事情(例如收到消息(例如在Facebook上),有人响应请求或引发其他事件),则需要在用户看到的网页上使用AJAX的javascript中实现轮询系统(查找...这是一个非常棒的概念)定期与服务器交谈以查看是否发生了什么。这就是Facebook聊天与大多数网络邮件系统一起检查新消息的方式。服务器不与浏览器通信...浏览器询问服务器是否发生了什么。
下面是使用 AJAX 的聊天程序的示例: http://www.dynamicajax.com/fr/JSON_AJAX_Web_Chat-.html
它不完全是你正在做的事情,但它演示了在页面加载后尝试检查某些内容并使用户的浏览器响应的概念。
不,请使用 .NET 版本的石英调度程序库 (http://quartz-scheduler.org/) 根据配置(cron expresion)定义和触发作业。
当网站中没有打开会话时,IIS 会自动关闭网站应用程序要禁用此功能,您可以在 IIS 中更改空闲时间或在 global.asax (application_end) 函数中读取网站链接以启动新会话