当前位置:编程学习 > C#/ASP.NET >>

求教,webservice线程崩溃

请教一个问题,我用webservice做了一个接口,这个接口里面启动一个线程,这个线程用来发送短信,可能会发送很多,也许几十分钟,接口启动线程以后,就返回了。
然后我在客户端asp net里去掉用这个接口,以实现服务端后台异步发送短信的功能。客户端调用这个接口以后,马上就返回,就可以做其他事情了,而不必等到短信全部发送完毕,才返回。
但是这个线程偶尔会崩溃,但是又没有发现异常,这会是神马原因呢?或者怎么去调试这种问题呢?先谢谢了!!!
--------------------编程问答-------------------- 服务端本身就是多线程的,而且WebService实例是Session级别的。

你不如直接实现非异步方法,而在客户端生成 BeginXXX 这样的异步接口。(客户端自己异步的调用) --------------------编程问答-------------------- 1、把线程可能出问题的地方,增加捕获异常,或者retry机制
2、查看服务器日志
3、远程调试 --------------------编程问答-------------------- 在主线程中不能直接捕获异步线程中的异常,要用委托来处理 --------------------编程问答-------------------- 同样问题,好像默认20分钟,线程就会停,但你访问一次接口,它又运行起来了。加了个计时器,试试

System.Timers.Timer timer = new System.Timers.Timer(timeRun.TimeInterval);
        //AutoReset 属性为 true 时,每隔指定时间循环一次;
        //如果为 false,则只执行一次。
        timer.AutoReset = true;
        timer.Enabled = true;
        timer.Elapsed += new System.Timers.ElapsedEventHandler(timeRun.setTime); --------------------编程问答--------------------
引用 4 楼 duyongfeng1985 的回复:
同样问题,好像默认20分钟,线程就会停,但你访问一次接口,它又运行起来了。加了个计时器,试试

System.Timers.Timer timer = new System.Timers.Timer(timeRun.TimeInterval);
        //AutoReset 属性为 true 时,每隔指定时间循环一次;
        //如果为 false,则只执行一次。
……



WS 20分钟,不会是w3wp工作进程被自动回收了吧,改用windows service
补充:.NET技术 ,  Web Services
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,