0

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

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 知道文件夹结构的变化?

4

1 回答 1

1

ServiceStack 创建一个顶级文件和目录的静态缓存,存储在私有静态HttpHandlerFactory.WebHostRootFileNames(小写)中。

一种方法是使用反射将新的顶级myclient文件夹添加到私人收藏中。另一种方法是上传现有顶级文件夹下的文件/文件夹,例如:

/clients/MyClient

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

于 2014-10-14T06:59:07.117 回答