【问题标题】:.Net Web Service Timeout at Internet Server MachineInternet 服务器计算机上的 .Net Web 服务超时
【发布时间】:2012-03-07 04:12:16
【问题描述】:

我们正在开发一个通过 Internet 上传大文件的应用程序。 DotNetZip 压缩前的文件大小约为 18GB,压缩后约为 4GB。文件通过安全 ftp 从客户端机器传输到目标服务器机器没有任何问题。

然后客户端调用目标服务器主机托管的.Net网络服务将文件从ftp根目录复制到存储目录,计算文件哈希,调用DotNetZip解压文件。

当托管 Web 服务的客户端计算机和目标服务器计算机都在 Intranet 中时,Web 服务运行良好。

但是,当使用同一台客户端计算机,但使用另一台在 Internet 上托管 Web 服务的生产目标服务器计算机时,Web 服务在复制、散列和解压缩 4GB 文件时出现“线程被中止异常”。

两台服务器机器都是带有 SP2 的 Windows 2003 服务器,安装了相同的组件,具有相同的 IIS ver6.0,并且配置相同以使用 ASP .Net 2.0。我们将 web.config、machine.config、MetaBase.xml 从 Intranet 服务器机器复制到 Internet 服务器机器。

我们改变了: 1.客户端代码:代码7200000中的Web服务代理超时 2.服务器机器web.config文件: (1)。 (2)。 3.服务器机器machine.config文件: (1)。 4.服务器机器MetaBase.xml: (1)。 AspMaxRequestEntityAllowed="1073741824" 5.在IIS ver6,网站->服务选项卡->隔离模式,勾选“以IIS 5.0隔离模式运行WWW服务”。

我们目前对 Internet 上服务器机器上的问题的理解是,即使线程继续完成复制文件,.Net 在默认超时值下回收工作进程也会导致“线程被中止”异常。

如果我们的理解是正确的,那么为什么同样的超时配置可以在内网的服务器机器上工作呢?我们如何在 Internet 上的生产服务器机器上进行超时配置?

【问题讨论】:

    标签: asp.net .net web-services iis-6 timeoutexception


    【解决方案1】:

    我迷路了。您有 2 台服务器。一个有一个 Web 服务,它解压缩一个非常大的文件并将其复制到第二个服务器。

    沿途某处超时。对吗?

    如果这是真的,那么我会在文件复制过程中查看网络利用率。我的猜测是文件在机器之间传输需要大量时间。

    您提到一台服务器在防火墙内,另一台在防火墙外。这两个服务器之间的链接有多快?如果它只有 10Mb,那么你就被严重淹没了。

    【讨论】:

    • 感谢您的回复。让我澄清一下配置。它涉及 3 台机器。
    • 感谢您的回复。我有服务器 A 托管 Web 服务,服务器 B 存储文件。 A 和 B 在 Internet 上的同一网络上。在我取消选中“在 IIS 5.0 中以隔离模式运行 WWW”后,使用应用程序池,我在服务器 A 上复制、散列、解压缩 4GB 文件没有问题。但如果我复制,我仍然得到“线程被中止异常” /hash/unzip 文件从 A 到 B。为什么我的超时配置在使用服务器 B 时不起作用?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-24
    • 2016-10-28
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-16
    相关资源
    最近更新 更多