Asp.net 上传会不会太快?
我不确定这是不是问这个问题的合适地方,但我还是会问的 我已经为Umbraco CMS开发了一个上传器,它可以让人们一次性上传一个文件队列。它使用一些简单的flash应用程序,只需调用.NET ashx即可一次上传一个文件。一个完成后,下一个开始 最近,我有一个用户遇到了一个问题,1到2次上传都可以正常进行,但其余的都失败了。这种情况发生在他自己和他的客户身上。经过一些调试后,他认为自己找到了问题,但这似乎很奇怪,所以我想知道是否还有其他人有这个问题 他和他的客户都使用光纤宽带连接,因此上传速度非常快。当它在低速宽带连接上测试时,所有文件都上传了,没有问题。据他的一位开发人员朋友说,显然他们以前遇到过它,为了让它工作,他们不得不稍微延迟上传脚本Asp.net 上传会不会太快?,asp.net,uploading,broadband,Asp.net,Uploading,Broadband,我不确定这是不是问这个问题的合适地方,但我还是会问的 我已经为Umbraco CMS开发了一个上传器,它可以让人们一次性上传一个文件队列。它使用一些简单的flash应用程序,只需调用.NET ashx即可一次上传一个文件。一个完成后,下一个开始 最近,我有一个用户遇到了一个问题,1到2次上传都可以正常进行,但其余的都失败了。这种情况发生在他自己和他的客户身上。经过一些调试后,他认为自己找到了问题,但这似乎很奇怪,所以我想知道是否还有其他人有这个问题 他和他的客户都使用光纤宽带连接,因此上传速度非
这听起来可能吗?还有其他人碰到过这个问题吗?是否有一个已知的解决方法来防止上传失败?我以前没有遇到过这个精确的问题,但我以前做过很多DSL和宽带故障排除的诊断,所以我会尽我所能回答这个问题 这种特殊症状有两种可能的原因,通常都不在您的网络控制范围内(我原以为) 1) 丢包 当然,当一些链路接收到非常高的流量时,它们可以选择只转储大量数据(例如,超过该链路最大设置大小的所有数据),但TCP/IP应该控制这一点,并且还希望这类数据不时下降,所以这似乎不太可能 2) 接收服务器 可能有一些HTTP瓶颈进入该服务器,甚至接收服务器的CPU/RAM等,可能已满负荷 从故障排除的角度来看,即使这些症状(理论上)不应该存在,但事实上它们确实存在,并且您有一个特定的 如果您真的需要了解它是如何工作的,下一步可能是使用某种数据包嗅探器(如WireShark)来尝试在数据包级别了解到底发生了什么 此外,套接字编程通常可以直接编程到TCP/IP套接字,因此您将在较低的网络层进行处理,并查看响应和超时等 另外,如果您控制了接收服务器,那么您可以从该端执行相同的操作,或者至少查看错误日志以查看出现了什么问题 如果可能的话,一个真正基本的方法是向接收服务器发送路径,这可能会突出显示获取服务器的缓慢节点,或者本地机器和终端服务器之间的数据包丢失 结果如何?在上传代码中加入一个减速功能,这至少可以让代码正常工作
如果您需要对WireShark的内容进行任何分析,请联系。我以前没有遇到过这个精确的问题,但我以前做过很多DSL和宽带故障诊断,因此我将尽我所能回答这个问题 这种特殊症状有两种可能的原因,通常都不在您的网络控制范围内(我原以为) 1) 丢包 当然,当一些链路接收到非常高的流量时,它们可以选择只转储大量数据(例如,超过该链路最大设置大小的所有数据),但TCP/IP应该控制这一点,并且还希望这类数据不时下降,所以这似乎不太可能 2) 接收服务器 可能有一些HTTP瓶颈进入该服务器,甚至接收服务器的CPU/RAM等,可能已满负荷 从故障排除的角度来看,即使这些症状(理论上)不应该存在,但事实上它们确实存在,并且您有一个特定的 如果您真的需要了解它是如何工作的,下一步可能是使用某种数据包嗅探器(如WireShark)来尝试在数据包级别了解到底发生了什么 此外,套接字编程通常可以直接编程到TCP/IP套接字,因此您将在较低的网络层进行处理,并查看响应和超时等 另外,如果您控制了接收服务器,那么您可以从该端执行相同的操作,或者至少查看错误日志以查看出现了什么问题 如果可能的话,一个真正基本的方法是向接收服务器发送路径,这可能会突出显示获取服务器的缓慢节点,或者本地机器和终端服务器之间的数据包丢失 结果如何?在上传代码中加入一个减速功能,这至少可以让代码正常工作
如果您需要对WireShark的内容进行任何分析,请联系。我在使用Flash uploader和Firefox的MVC2网站上遇到了类似的问题。服务器通过大型IP负载平衡器进行负载平衡。我们在调试过程中发现,Firefox中的Flash没有在继续请求时发送会话ID,负载平衡器会将继续请求发送到另一台服务器。由于用户在新服务器上没有会话,请求失败 如果一个文件可以在一块中发送,那么它就可以上传了。如果它需要第二个块,则失败。因此,上传的文件数量不确定后,上传将失败
为了解决这个问题,我编写了一个Silverlight上传程序。我在使用Flash上传程序和Firefox的MVC2网站上遇到了类似的问题。服务器通过大型IP负载平衡器进行负载平衡。我们在调试过程中发现,Firefox中的Flash没有在继续请求时发送会话ID,负载平衡器会将继续请求发送到另一台服务器。由于用户在新服务器上没有会话,请求失败 如果一个文件可以在一个块中发送,它将上传fi