asp.net程序,在文件上传时点其他的链接就会没反应,有没有办法解决

bobowu 2005-01-15 09:20:53
服务器是windows 2003 iis6.0,我想应该是iis配置或asp.net配置的问题,请问有没有办法解决

这个问题好像是认定一个浏览器进程只能处理一个请求,请求完成后才会接受另一个请求,有没有可能上传文件过程中还能进行其他操作呢。
...全文
188 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
bobowu 2005-02-21
  • 打赏
  • 举报
回复
始终是解决不了,看来只有那个上传大文件的使用http worker才能搞定了
warren1999 2005-01-28
  • 打赏
  • 举报
回复
多线程
bobowu 2005-01-28
  • 打赏
  • 举报
回复
再顶一下,因为始终得不到解决
xinyu1225 2005-01-16
  • 打赏
  • 举报
回复
up
nga96 2005-01-16
  • 打赏
  • 举报
回复
呵,顶一下,好像网易也是这样的,
bobowu 2005-01-16
  • 打赏
  • 举报
回复
还是没有办法解决,等………………
bobowu 2005-01-15
  • 打赏
  • 举报
回复
因为有可能有打开新窗口的,在原来的窗口里上传文件,其他窗口继续浏览啊。
但是现在是上传过程中其他窗口都没有响应该,如果是新开的一个浏览器就会完全正常,但因为有身份验证,而且只能同时登陆一个,所以不能那样做啊。
wj2929 2005-01-15
  • 打赏
  • 举报
回复
多线程???
karykwan 2005-01-15
  • 打赏
  • 举报
回复
文件上传时你还要做其它事?那不是上传不成功?
没遇到过.要不你新建一个应用程序池,把想应的程序放到那里面.这样就有两个W3wp.exe进程.试试.
sugarsupper 2005-01-15
  • 打赏
  • 举报
回复
up,不能再到了
oceanh 2005-01-15
  • 打赏
  • 举报
回复
又倒
bobowu 2005-01-15
  • 打赏
  • 举报
回复
再倒,一大篇的技术介绍,一点用都没有
goody9807 2005-01-15
  • 打赏
  • 举报
回复
操作系统使用进程将它们正在执行的不同应用程序分开。线程是操作系统分配处理器时间的基本单元,并且该进程中可以有多个线程同时执行代码。每个线程都维护异常处理程序、调度优先级和一组系统用于在调度该线程前保存线程上下文的结构。线程上下文包括为使线程在线程的宿主进程地址空间中无缝地继续执行所需的所有信息,包括线程的 CPU 寄存器组和堆栈。

.NET 框架将操作系统进程进一步细分为由 System.AppDomain 表示的称为应用程序域的轻量托管子进程。一个或多个托管线程(由 System.Threading.Thread 表示)可以在同一个非托管进程中的一个或任意数目的应用程序域中运行。虽然每个应用程序域都是用单个线程启动的,但该应用程序域中的代码可以创建附加应用程序域和附加线程。其结果是托管线程可以在同一个非托管进程中的应用程序域之间自由移动;您可能只使一个线程在若干应用程序域之间移动。

支持抢先多任务处理的操作系统可以创建多个进程中的多个线程同时执行的效果。它通过以下方式实现这一点:在需要处理器时间的线程之间分割可用处理器时间,并轮流为每个线程分配处理器时间片。当前执行的线程在其时间片结束时被挂起,而另一个线程继续运行。当系统从一个线程切换到另一个线程时,它将保存被抢先的线程的线程上下文,并重新加载线程队列中下一个线程的已保存线程上下文。

时间片的长度取决于操作系统和处理器。由于每个时间片都很小,因此即使只有一个处理器,多个线程看起来似乎是在同时执行。这实际上就是多处理器系统中发生的情形,在此类系统中,可执行线程分布在多个可用处理器中。

何时使用多个线程
需要用户交互的软件必须尽可能快地对用户的活动作出反应,以便提供丰富多彩的用户体验。但同时它必须执行必要的计算以便尽可能快地将数据呈现给用户。如果应用程序仅使用一个执行线程,则可以结合使用异步编程与 .NET 远程处理或使用 ASP.NET 创建的 XML Web services,以便在使用自己计算机的处理时间以外再使用其他计算机的处理时间,从而提高对用户的响应速度并减少应用程序的数据处理时间。如果您正在进行大量的输入/输出工作,则还可以使用 I/O 完成端口来提高应用程序的响应速度。

多个线程的优点
无论如何,要提高对用户的响应速度并且处理所需数据以便几乎同时完成工作,使用多个线程是一种最为强大的技术。在具有一个处理器的计算机上,多个线程可以通过利用用户事件之间很小的时间段在后台处理数据来达到这种效果。例如,在另一个线程正在重新计算同一应用程序中的电子表格的其他部分时,用户可以编辑该电子表格。

无需修改,同一个应用程序在具有多个处理器的计算机上运行时将极大地满足用户的需要。单个应用程序域可以使用多个线程来完成以下任务:

通过网络与 Web 服务器和数据库进行通讯。
执行占用大量时间的操作。
区分具有不同优先级的任务。例如,高优先级线程管理时间关键的任务,低优先级线程执行其他任务。
使用户界面可以在将时间分配给后台任务时仍能快速作出响应。
多个线程的缺点
建议您使用尽可能少的线程,这样可以使操作系统资源的使用率最低,并可提高性能。线程处理还具有在设计应用程序时要考虑的资源要求和潜在冲突。这些资源要求如下所述:

系统将为进程、AppDomain 对象和线程所需的上下文信息使用内存。因此,可以创建的进程、AppDomain 对象和线程的数目会受到可用内存的限制。
跟踪大量的线程将占用大量的处理器时间。如果线程过多,则其中大多数线程都不会产生明显的进度。如果大多数当前线程处于一个进程中,则其他进程中的线程的调度频率就会很低。
使用许多线程控制代码执行非常复杂,并可能产生许多错误。
销毁线程需要了解可能发生的问题并对那些问题进行处理。
提供对资源的共享访问会造成冲突。为了避免冲突,必须对共享资源的访问进行同步或控制。未能正确地使访问同步(在相同或不同的应用程序域中)会导致诸如死锁(两个线程都停止响应,并且都在等待对方完成)和争用条件(由于意外地出现对两个事件的执行时间的临界依赖性而发生反常的结果)等问题。系统提供了可用于协调多个线程之间的资源共享的同步对象。减少线程的数目使同步资源更为容易。

需要同步的资源包括:

系统资源(如通讯端口)。
多个进程所共享的资源(如文件句柄)。
由多个线程访问的单个应用程序域的资源(如全局、静态和实例字段)。
线程处理与应用程序设计
一般情况下,要为不会阻塞其他线程的相对较短的任务处理多个线程并且不需要对这些任务执行任何特定调度时,使用 ThreadPool 类是一种最简单的方式。但是,有多个理由创建您自己的线程:

如果您需要使一个任务具有特定的优先级。
如果您具有可能会长时间运行(并因此阻塞其他任务)的任务。
如果您需要将线程放置到单线程单元中(所有 ThreadPool 线程均处于多线程单元中)。
如果您需要与该线程关联的稳定标识。例如,您应使用一个专用线程来中止该线程、将其挂起或按名称发现它。
请参见
托管线程处理支持 | 线程池 | ThreadPool
bobowu 2005-01-15
  • 打赏
  • 举报
回复
顶一下,有没有人有办法解决啊

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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