ServiceStack如何识别新添加的文件夹

本文关键字:文件夹 添加 新添加 识别 何识别 ServiceStack | 更新日期: 2023-09-27 18:26:27

在我的应用程序中,每当使用代码创建新的托管客户端时,我都会将一个新文件夹和一组文件放入我的目录

Directory.CreateDirectory("MyClient", ...);
file.CopyTo("MyClient", ...);

文件夹如下所示:

- www.MyDomain.com/MyClient

- www.MyDomain.com/MyClient/Default.cshtml

- www.MyDomain.com/MyClient/js/default.js

- www.MyDomain.com/MyClient/img/default.png

等等

现在,如果您访问MyClient路径,您会期望它加载Default.cshtml,但您会得到一个找不到的404页面。在重新启动主机之前,如果您再次访问同一路径,您将获得正确的Default.cshtml页面内容。

如果我理解正确的话,SS只在启动时构建mvc文件夹路径,那么在你重新启动主机之前,它不会自动添加新文件夹?

有没有办法让SS知道文件夹结构的变化?

ServiceStack如何识别新添加的文件夹

ServiceStack创建顶级文件和目录的静态缓存,该缓存存储在专用静态HttpHandlerFactory.WebHostRootFileNames中(小写)。

一种方法是使用Reflection将新的顶级myclient文件夹添加到私有集合中。另一种方法是在现有的顶级文件夹下上传文件/文件夹,例如:

/clients/MyClient

嵌套的文件/文件夹未缓存,因此可以在AppDomain启动后添加和访问。