ServiceStack:自托管LiveReload无法正常工作

时间:2014-09-15 11:13:36

标签: servicestack

我有一个自托管的ServiceStack应用程序,我打算用它来开发一个角度应用程序。

问题是,以前,每次我对静态文件进行更改时,我都必须重新启动所有服务才能获取更改。

我想知道我是否遗漏了什么?我已经LiveReload启用了RazorFormat选项,但它似乎没有做任何事情?我仍然需要重新启动整个应用程序来获取更改吗?

我在这里创建了一个小型复制品:https://github.com/CallumVass/ServiceStackSelfHost

如果我对Default.cshtml文件进行了更改,那么在我重新启动服务之前,这些更改是不会被选中的?

2 个答案:

答案 0 :(得分:3)

问题是他正在更改来源文件,而不是输出文件。由于SS将文件复制到/bin/debug,因此需要更改该版本。

使用HostConfig settings,我们能够在开发过程中以下列方式使用WebHostPhysicalPath属性,同时设置SS配置:

SetConfig(new HostConfig {
#if DEBUG
    DebugMode = true,
    WebHostPhysicalPath = Path.GetFullPath(Path.Combine("~".MapServerPath(), "..", "..")),
#endif
});

这使我们离开了/bin/debug并回到了源头。

答案 1 :(得分:2)

您需要将AppHost配置设置为debug模式:

SetConfig(new HostConfig {
    DebugMode = true,
});

出于性能原因,仅在调试模式下监视更改。 See here了解更多信息。

  

自动重新加载修改后的视图,布局模板和部分(在调试模式下)

     

避免启动惩罚的最佳方法是避免首先重启AppDomain。因此,在调试模式下,我们还会执行此操作,其中后台文件系统观察程序监视所有页面,部分和布局模板以进行修改和重新编译,并在运行时自动重新加载它们,所有这些都准备好在页面后立即响应时间请求。