更新:
您的应用程序设置不正确。
您的 F# MVC 应用程序未正确设置。您正在使用应该使用 IIS 作为其主机的 ASP.NET。这意味着来自 IIS 的请求被传递到 AppHost。但是,在您使用的设置中,AppHostHttpListenerBase
这实际上是在创建它自己的 HTTP 侦听器,本质上您已经将独立自托管与 ASP.NET 托管设置混合在一起。
结果,您遇到了必须将内容复制到输出目录的奇怪情况。这是因为在独立的 ServiceStack 应用程序中,这是要求,它在错误的位置寻找内容。
尝试使用这个:
type AppHost =
inherit AppHostBase
new() = { inherit AppHostBase("Hello F# Services", typeof<HelloService>.Assembly) }
override this.Configure container =
...
您应该阅读本文以确保您已正确设置 MVC ASP.NET 应用程序。
您仍然希望使用它DebugMode = true
来启用 ServiceStack 以自动接收更改,因此我已将那部分答案留在里面。
有点难以理解你所说的话,但如果我的解释正确,你说你有一个 F# ASP.NET ServiceStack Razor 项目,你发现每次你都必须重新运行构建过程更改您的视图。
我还没有使用 F#,所以我将不得不在 C# 中给出示例,但是您需要将 AppHost 配置设置为DebugMode = true
以便让 ServiceStack 自动接受更改,因此您不必重新运行每次构建过程。
SetConfig(new EndpointHostConfig {
DebugMode = true,
});
我注意到您的代码中没有设置:
type AppHost() =
inherit AppHostHttpListenerBase("Hello F# Service", typeof<HelloService>.Assembly)
override this.Configure container =
this.Plugins.Add(new RazorFormat())
ignore()
static member start() =
let apphost = new AppHost()
apphost.Init()
有关详细信息,请参阅本文档中的“自动重新加载修改后的视图、布局模板和部分(在调试模式下)”部分。
因此,在调试模式下,我们还将执行此操作,其中后台文件系统观察程序监视所有页面、部分和布局模板以进行修改和重新编译并即时自动重新加载它们......