这可能不是正确的问题或论坛,但有没有办法在.NET应用程序中更改文件/流复制操作的默认缓冲区大小,当您没有访问权限时使用(可能)默认缓冲区大小到源代码?
我使用的程序在WAN上执行一组文件副本,但速度非常慢。它使用SMB2使用网络UCN路径将文件从一个地方复制到另一个地方。
在运行Wireshark时,我可以看到文件(通常是我们的100mb WAN上的1mb,延迟为7ms)被分成4k个数据包(这是默认的缓冲区大小,我相信.net流操作),发送对于使用SMB2的共享,还有相当多的TCP重建操作正在执行,文件传输大约需要3秒钟。
我使用文件副本和Robocopy运行了类似的操作,他们发送了65k数据包,绝对没有TCP数据包重建操作,只是65k SMB2请求的连续列表,它需要几毫秒。
任何帮助都将不胜感激。