在我的应用程序中,只要使用代码创建新的托管客户端,我就会将新文件夹和一组文件放入我的目录中:
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了解文件夹结构的变化?
答案 0 :(得分:1)
ServiceStack创建顶级文件和目录的静态缓存,存储在私有静态HttpHandlerFactory.WebHostRootFileNames
(小写)中。
一种方法是使用Reflection将新的顶级myclient
文件夹添加到私有集合中。另一种方法是在现有的顶级文件夹下上传文件/文件夹,例如:
/clients/MyClient
嵌套文件/文件夹不会被缓存,因此可以在AppDomain启动后添加和访问。