【问题标题】:Owin middleware configuration in controller控制器中的 Owin 中间件配置
【发布时间】:2016-06-17 15:09:58
【问题描述】:

我正在使用带有 Microsoft.Owin.StaticFiles 中间件的自托管 Web API 服务器来提供静态文件。配置:

public void Configuration(IAppBuilder appBuilder)
{
    // Configure Web API for self-host. 
    var config = new HttpConfiguration();
    //...
    appBuilder.UseWebApi(config);

    var physicalFileSystem = new PhysicalFileSystem(@".\Public");
    Directory.CreateDirectory(physicalFileSystem.Root);
    var options = new FileServerOptions
    {
        FileSystem = physicalFileSystem,        
        RequestPath = PathString.FromUriComponent("/download")

    };
    appBuilder.UseFileServer(options);
}

如何在 WebAPI 控制器中获取文件系统设置(或提供文件的路径)?

【问题讨论】:

  • 为什么不将路径保存在配置设置中的某个位置并在您的 OWin 配置中使用它呢?无论如何,你的代码中不应该有这些“神奇”的字符串。
  • 你不能。这就是 OWin 的要点。静态文件中间件独立于 WebAPI 控制器。相反,您可以让 WebAPI 托管静态文件。只需为具有通配符路径的 StaticFileController 设置路由,然后在控制器中解析路径以创建要返回的 FileStream 对象。

标签: c# asp.net-web-api owin


【解决方案1】:

我不太了解您的问题,但是如果您想将任何东西从中间件传递给另一个,您可以将其放入环境对象中,即字典:

IDictionary<string,object>

因此,如果您想将任何对象从中间件传递到另一个使用环境对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-29
    • 2016-12-14
    • 1970-01-01
    • 1970-01-01
    • 2016-06-04
    • 2018-10-22
    • 1970-01-01
    • 2018-02-08
    相关资源
    最近更新 更多