Windows 2003+IIS6,多线程问题求教

ID090825101801 2012-11-02 01:32:37
问题描述:
C#开发的一个网站,应业务需求将一个功能改为多线程执行,功能在开发者本机运行没有问题(Windows2008R2+IIS7);但是在发布到服务器(Windows2003+IIS6)上就不行。
为了测试问题,简化了需要执行方法,只是做记录日志,发现在服务器的日志只记录了开启线程之前的记录,说明程序根本就没有执行到多线程需要执行的方法。
简化代码如下:

public static void Method_MultiThread()
{
try{
Log("多线程开始");
Thread thread = new Thread(new ThreadStart(Method_Deal));
thread.Start();
}
}

private static void Method_Deal()
{
Log("线程方法执行中...");
}

注:Log方法只是做记录内容到txt文件。

发布服务器上运行,txt文件中只有“多线程开始”这一行记录;另外,这个处理方法是通过AJAX调用的,最后会报一个“向服务器下载资源失败”的JS错误,说明方法是Timeout了吗?

本人在服务器上装了VS2008,进行了调试,没有问题(调试环境是VS开发服务器,非IIS web服务器)。

个人判断问题可能原因以下(未确定,希望大家也能够给出其他的问题原因方向):
1. 是否与IIS版本有关(可能性较小,查了资料说,Windows 2000以上应该不会有问题)
2. 是否是进程下的线程数达到了限制(这里有个问题,该如何查看本站点的线程数量)

以上,还请有过类似经验的,或者大牛们出来给点意见,在线等哦!!!
...全文
255 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
eesprite 2014-01-12
  • 打赏
  • 举报
回复
网站怎么能用Thread做多线程。。 Log方法估计也有问题
三五月儿 2013-04-14
  • 打赏
  • 举报
回复
引用 楼主 ID090825101801 的回复:
问题描述: C#开发的一个网站,应业务需求将一个功能改为多线程执行,功能在开发者本机运行没有问题(Windows2008R2+IIS7);但是在发布到服务器(Windows2003+IIS6)上就不行。 为了测试问题,简化了需要执行方法,只是做记录日志,发现在服务器的日志只记录了开启线程之前的记录,说明程序根本就没有执行到多线程需要执行的方法。 简化……
你不是说: 发现在服务器的日志只记录了开启线程之前的记录,说明程序根本就没有执行到多线程需要执行的方法。 既然多线程的代码都没执行到,应该线程数量没有关系,应该是与服务器环境有关,你将服务器环境改为很开发环境一样的环境,看看还有没有问题
  • 打赏
  • 举报
回复
你不妨把第一行文字写入文件1,把第二行文字写入文件2。如果能写了文件2,显然你的Log方法问题不小。 关于Ajax的问题,你的描述并没有能够说明服务器端的调用机制,无法判断。
fifaxjb 2013-04-13
  • 打赏
  • 举报
回复
我也遇到相同的问题,求解决
wang_jitang01 2012-11-10
  • 打赏
  • 举报
回复
个人觉得是多线程的问题,ajax 还多线程的话 应该会有问题,多线程无法响应是因为不知道线程什么时候执行完毕
ID090825101801 2012-11-05
  • 打赏
  • 举报
回复
再顶顶,几天了,都没人有碰到过或者有了解么?
ID090825101801 2012-11-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

是不是Log本身有问题,在Method_Deal里面用try catch捕获一下
[/Quote]
Log方法应该没有问题,在进入开线程前就有调用过Log方法,也有记录写到txt文件。感谢您的关注,继续等大牛。
niss 2012-11-02
  • 打赏
  • 举报
回复
是不是Log本身有问题,在Method_Deal里面用try catch捕获一下

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧