【发布时间】:2012-08-07 17:08:10
【问题描述】:
我们将服务堆栈用于 Web 服务 API。我们编写了一个“获取文件”例程来获取文件,而不是让 IIS 直接提供文件,因为我们需要服务器端的身份验证逻辑。
我们通过返回一个IStreamWriter从RestServiceBase<Foo>.OnGet返回一个文件,实现如下:
public void WriteTo(Stream responseStream)
{
Stream filedata = File.OpenRead(_filepath);
filedata.CopyTo(responseStream);
}
问题:这比 IIS 直接提供文件要慢 50% 到 100%。
我是否从服务堆栈错误地返回了文件?有什么办法可以加快速度吗?
或者,有什么方法可以将我们的身份验证方案(我们希望完全无状态,因此在服务器机器上没有缓存凭据)插入 IIS,以便 IIS 以某种方式调用我们的服务器来验证每个请求,然后服务文件本身?
【问题讨论】:
标签: authentication iis servicestack