gpt4 book ai didi

c# - 无法从传输连接读取数据 : An existing connection was forcibly closed by the remote host

转载 作者:可可西里 更新时间:2023-11-01 17:03:42 26 4
gpt4 key购买 nike

当我通过 HTTP 传输大约 50Mb 的文件时有时我会收到此错误:

无法从传输连接读取数据:远程主机强行关闭了现有连接。

首先,我在 http://stackoverflow.com 下找不到任何解决方案。 .

知道我需要改进/改变什么吗?

应用程序配置:

 <bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_MyDomainServicesoap" closeTimeout="00:03:00" openTimeout="00:04:00" receiveTimeout="00:10:00" sendTimeout="00:05:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="50000000" maxBufferPoolSize="50000000" maxReceivedMessageSize="50000000" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
<readerQuotas maxDepth="64" maxStringContentLength="16384" maxArrayLength="32768" maxBytesPerRead="8192" maxNameTableCharCount="16384"/>
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
<message clientCredentialType="UserName" algorithmSuite="Default"/>
</security>
</binding>
<binding name="BasicHttpBinding_MyAuthenticationDomainServicesoap" closeTimeout="00:03:00" openTimeout="00:04:00" receiveTimeout="00:10:00" sendTimeout="00:05:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="50000000" maxBufferPoolSize="50000000" maxReceivedMessageSize="50000000" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
<readerQuotas maxDepth="64" maxStringContentLength="16384" maxArrayLength="32768" maxBytesPerRead="8192" maxNameTableCharCount="16384"/>
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
<message clientCredentialType="UserName" algorithmSuite="Default"/>
</security>
</binding>
</basicHttpBinding>
</bindings>

代码:

private void FinishWebRequest(IAsyncResult result)
{
// Assign values to these objects here so that they can be referenced in the finally block
Stream remoteStream = null;
Stream localStream = null;
WebResponse response = null;

try
{
response = request.EndGetResponse(result);

if (response != null)
{
// Once the WebResponse object has been retrieved, get the stream object associated with the response's data
remoteStream = response.GetResponseStream();

// Create the local file
string pathToSaveFile = Path.Combine(FileManager.GetFolderContent(), FileView.Filename);
localStream = File.Create(pathToSaveFile);

WinAPI.SYSTEM_INFO sysinfo = new WinAPI.SYSTEM_INFO();
WinAPI.GetSystemInfo(ref sysinfo);

// Allocate a buffer
byte[] buffer = new byte[int.Parse(sysinfo.dwPageSize.ToString())];
int bytesRead;

// Simple do/while loop to read from stream until no bytes are returned
do
{
// Read data (up to 1k) from the stream
bytesRead = remoteStream.Read(buffer, 0, buffer.Length);

// Write the data to the local file
localStream.Write(buffer, 0, bytesRead);

// Increment total bytes processed
BytesProcessed += bytesRead;
} while (bytesRead > 0);

FileView.Downloaded = DateTime.Now;

if (BytesProcessed > 0)
{
FileView.IsSuccess = true;
FileView.IsDownloading = false;
}
else
{
FileView.IsSuccess = false;
FileView.IsDownloading = false;
}
}
}
catch (Exception ex)
{
#region Error
LogEntry l = new LogEntry();
l.Message = string.Format("{0}", ex.Message);
l.Title = "FinishWebRequest() Error";
l.Categories.Add(Category.General);
l.Priority = Priority.Highest;

if (ex.InnerException != null) l.ExtendedProperties.Add("InnerException", ex.InnerException.Message);

CustomLogger.CustomLogger.WriteErrorLog(l);
#endregion
}
finally
{
// Close the response and streams objects here to make sure they're closed even if an exception is thrown at some point
if (response != null) response.Close();
if (remoteStream != null) remoteStream.Close();
if (localStream != null) localStream.Close();
}
}

最佳答案

我不确定它是否适用于所有情况。

但是当我将下载大文件的服务器并行连接数从 3 减少到 2 时,只有没有错误。

(早期我用的是3并联。)

关于c# - 无法从传输连接读取数据 : An existing connection was forcibly closed by the remote host,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8855253/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com