using (Stream stream = _client.GetDownloadStream(filePath))
{
long toRead = length;
stream.Seek(startIndex, SeekOrigin.Begin);
using (Stream outStream = context.Response.OutputStream)
{
// The reported bytes are off, we have to manually keep count
// of read bytes
while (toRead > 0 && stream.Read(buffer, 0, chunk) > 0)
{
long readSize = toRead < chunk ? toRead : chunk;
outStream.Write(buffer, 0, (int)readSize);
outStream.Flush();
toRead -= chunk;
}
}
}
context.Response.End();
}
else
{
ErrorProcessing(context);
}
}
catch (ThreadAbortException ex)
{
Utils.Log.Info("Aborted thread - User aborted download", ex);
}
>>>>>>>catch (Exception inex)
{
if (context.Response.IsClientConnected)
{
Utils.Log.CustomError("Failed to stream recording " +
inex.Message + " " + inex.StackTrace);
}
}
我实际上要做的事情
- 打开SFTP连接到我的服务器文件存储
- 开始流。
- 读取比特并尝试写回流。
我的问题是什么? - 上述代码完美地在Google Chrome,Microsoft Edge和Internet Explorer中传输音频,但无法在Mozilla Firefox中执行此操作。
我的调查
- Firefox以某种方式清理会话变量,也许这就是连接关闭的原因,但我不妨放弃它,因为它允许我下载相同的文件,但不会流式传输。
- 我也读过:The remote host closed the connection. The error code is 0x800704CD但是找不到解决方案或至少如何避免错误。
背景
- 开发C# - .NET应用程序,并需要从我们的存储中流式传输音频。
- 我已经通过&gt;&gt;&gt;&gt;&gt;标记了错误在代码中。这就是我捕获异常的地方。
真的很期待如何解决这个问题。