Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ServiceStack如何识别新添加的文件夹?_C#_<img Src="//i.stack.imgur.com/WM7S8.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">servicestack_Servicestack Razor - Fatal编程技术网 servicestack,servicestack-razor,C#,servicestack,Servicestack Razor" /> servicestack,servicestack-razor,C#,servicestack,Servicestack Razor" />

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

C# ServiceStack如何识别新添加的文件夹?,c#,servicestack,servicestack-razor,C#,servicestack,Servicestack Razor,在我的应用程序中,每当使用以下代码创建新的托管客户端时,我都会将一个新文件夹和一组文件放到我的目录中: Directory.CreateDirectory("MyClient", ...); file.CopyTo("MyClient", ...); 文件夹如下例所示: -www.MyDomain.com/MyClient -www.MyDomain.com/MyClient/Default.cshtml -www.MyDomain.com/MyClient/js/default.js -ww

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

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创建一个顶级文件和目录的静态缓存,该文件和目录存储在私有静态文件库中。WebHostRootFileNames(小写)

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

/clients/MyClient

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

您要删除哪种类型的文件,静态文件?否则,您可能必须配置正确的route@LukeHutton,请参阅修改。它们是模板文件夹中的文件,我使用代码复制它们,并在创建该客户机时自动将它们放入相应的“MyClient”文件夹中。WebHostRootFileNames是静态只读列表,但嵌套的文件和文件夹不是,这有什么原因吗?根级别不能动态创建吗?很想知道。@Tom会缓存顶级文件/文件夹,以便快速查找,并验证请求是针对物理文件/文件夹还是针对服务的路由。