我正在使用Service Stack在C#中构建一个自托管应用程序。我希望应用程序根据一些配置数据共享内容。
在 AppHost.Configure 期间,我想读入配置文件并递归地共享多个目录。目录可以是本地文件夹或共享文件夹,具体取决于配置中的每个元素。
例如,如果我的配置如下所示:
[
{
"sourceId": "TEST1",
"contentPath": "\\\\nas01\\files"
},
{
"sourceId": "TEST2",
"contentPath": "d:\\files"
}
]
我希望以递归方式访问这些目录:
http://localhost/TEST1/....
http://localhost/TEST2/....
读取配置文件没问题,实际上,我只是想知道映射这些目录的正确方法,以便我可以使用ServiceStack的内置静态处理功能。
所以我想我的问题是:
在服务堆栈中,在运行时映射静态内容目录的正确方法是什么?
非常感谢!
-Z
答案 0 :(得分:2)
在this commit中添加了对FileSystem Mapping的新支持,现在可以通过覆盖AppHost中的GetVirtualFileSources()
来注册文件系统映射,例如:
public override List<IVirtualPathProvider> GetVirtualFileSources()
{
var existingProviders = base.GetVirtualFileSources();
existingProviders.Add(new FileSystemMapping(this, "TEST1", "\\\\nas01\\files"));
existingProviders.Add(new FileSystemMapping(this, "TEST2", "d:\\files"));
return existingProviders;
}
此更改可从 v4.5.5 + 获得,现在为available on MyGet。