更新:
您的應用程序設置錯誤。
您的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 =
...
你應該閱讀this article,以確保您已經設置了ASP.NET MVC應用程序正確。
您仍想使用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()
見this documentation節「的修改意見,佈局模板和諧音(在調試模式)自動重載」的詳細信息。
所以在調試模式下我們也將這樣做,其中一個後臺文件系統觀察顯示器的所有頁面,諧音和佈局模板修改和重新編譯和自動重新加載它們在飛行中...
嘿,謝謝你快速回答。我試過但沒有工作。這是事情。在C#項目中,編譯類型是內容並且複製到輸出目錄是沒有任何東西的。但在F#編譯類型是內容,但我仍然必須將副本設置爲輸出目錄以複製,如果更新以使其工作。我想這是問題。如果無論如何,我設法運行與副本輸出目錄無,問題將得到解決。 – kunjee
@kunjee我已經更新了答案。我已經發現了這個問題。你不應該使用'AppHostHttpListenerBase'這隻適用於自我託管的應用程序。 – Scott
我不能感謝你。你救了我......這個問題讓我像任何事一樣困擾着我。我從自己託管的應用程序複製粘貼的代碼,然後我犯了錯誤。謝啦。非常感謝。 – kunjee