servicestack,servicestack-bsd,servicestack-razor,Razor,servicestack,Servicestack Bsd,Servicestack Razor" /> servicestack,servicestack-bsd,servicestack-razor,Razor,servicestack,Servicestack Bsd,Servicestack Razor" />

为什么我的ServiceStack.Razor页面在我重建应用程序之前不会刷新?

为什么我的ServiceStack.Razor页面在我重建应用程序之前不会刷新?,razor,servicestack,servicestack-bsd,servicestack-razor,Razor,servicestack,Servicestack Bsd,Servicestack Razor,我在ServiceStack(3.9)中托管了一个API项目,并添加了一个/docs文件夹,其中包含两个Razor文件,\u layout.cshtml和default.cshtml 我没有配置缓存;我的AppHost类如下所示: public class AppHost : AppHostBase { public AppHost() : base("My API", typeof(UserService).Assembly, typeof(GetUserDto).A

我在ServiceStack(3.9)中托管了一个API项目,并添加了一个/docs文件夹,其中包含两个Razor文件,
\u layout.cshtml
default.cshtml

我没有配置缓存;我的AppHost类如下所示:

public class AppHost : AppHostBase {
    public AppHost() 
        : base("My API", typeof(UserService).Assembly, typeof(GetUserDto).Assembly) {
    }

    public override void Configure(Container container) {
        ServiceExceptionHandler += 
            (req, request, exception) => {
                Elmah.ErrorSignal.FromCurrentContext().Raise(exception);
                return DtoUtils.HandleException(this, request, exception);
            };

        JsConfig.EmitCamelCaseNames = true;
        Plugins.Add(new RazorFormat());
        Plugins.Add(new SwaggerFeature());
    }

    public static void Start() {
        new AppHost().Init();
    }
}
我的Razor页面工作正常-转到localhost/api/docs显示默认页面并使用提供的布局-但是如果我更改Razor代码,我需要重新编译应用程序,然后才能在浏览器中看到它


我的理解是ServiceStack视图的工作方式与ASP.NET MVC视图类似——它们在请求时进行解释,对视图代码的任何更改都会立即显示出来,如果要缓存渲染视图,则需要显式配置。我是否错过了配置设置,或者我是否需要执行其他操作来重新编译ServiceStack页面而无需重建项目?

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

SetConfig(新端点主机配置){
DebugMode=true,
});
出于性能原因,仅在调试模式下监控更改。了解更多信息

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

避免启动惩罚的最佳方法是首先避免重新启动AppDomain。因此,在调试模式下,我们也将这样做,即后台文件系统监视程序监视所有页面、部分和布局模板,以进行修改和重新编译,并动态自动重新加载它们,一旦请求页面,所有这些都准备好随时提供即时响应时间


只是随地吐痰。您的项目中是否有包含Razor页面的
docs
文件夹,该文件夹上有
Copy to Output目录
?因为这会导致这些文件被复制到构建时的
bin/debug/docs
文件夹中,ServiceStack就是在该文件夹中查看的。因此,当您进行更改时,您正在对源副本而不是生成副本进行更改,因此ServiceStack不会对此进行处理,直到您重新生成并移动新副本。Nope-copy to Output Directory在这两个.cshtml文件上都为false。
DebugMode=true
是否适用于您?