我有一个网络应用程序,我通过实施Microsoft.Owin.FileSystems.IFileInfo
using System;
using System.IO;
using Microsoft.Owin.FileSystems;
public class CmsFileInfo : IFileInfo
{
private readonly FileInfo _fileInfo;
private readonly string _physicalPath;
public CmsFileInfo(FileInfo fileInfo)
{
_fileInfo = fileInfo;
_physicalPath = fileInfo.FullName;
Name = fileInfo.Name;
LastModified = fileInfo.LastWriteTimeUtc;
}
public Stream CreateReadStream()
{
return new FileStream(
_physicalPath,
FileMode.Open,
FileAccess.Read,
FileShare.Read,
1024 * 64,
FileOptions.SequentialScan);
}
public long Length
{
get { return _fileInfo.Length; }
}
public string PhysicalPath { get { return null; } }
public string Name { get; private set; }
public DateTime LastModified { get; private set; }
public bool IsDirectory { get { return false; } }
}
对我来说,似乎工作正常。但后来我们在iTunes上遇到了一些问题。苹果支持者给了我以下答案:
当我们请求您的图片时,您的服务器似乎没有关闭连接。考虑将图像托管在不同的图像上,看看是否可以解决问题。
我们将播客图像移至azure,现在我正在发送302重定向。这解决了iTunes的问题。
但是:我如何关闭连接?如何测试服务器是否关闭了连接?我的IFileInfo实施有什么问题?