我需要能夠從MVC應用程序的控制器調用我的SS服務。理想情況下,我想打電話給他們在進程中,以避免建立http請求等開銷。使用驗證和過濾器調用ServiceStack服務的問題
從沖刷文檔,我覺得有2個建議的方法,但都沒有完全工作。
1)ServiceGateway - 使用服務網關。這稱爲驗證過濾器,但不會調用我添加的其他客戶過濾器。沒有選擇應用過濾器。
2)HostContext.ServiceController.Execute - 這個方法有一個名爲applyFilters的專用選項,當我將它設置爲true時,它工作並應用過濾器和驗證(儘管它只執行GlobalFilters,而不是TypedRequestFilters)。但是,如果在服務上設置了[CacheResponse]屬性,它將覆蓋並刷新對我的客戶端的響應,覆蓋MVC控制器的流程,我不知道如何阻止此操作。如果我將applyFilters設置爲false或者關閉CacheResponse,它不會執行此操作。更改緩存的優先級不起作用。
我打電話Execute方法從我的控制器上的操作方法中,如下所示:
HostContext.ServiceController.Execute(serviceRequest, HostContext.GetCurrentRequest(), true);
這種方法甚至將控制返回的響應被刷新到Chrome瀏覽器上的網頁,然後什麼/ null是前從方法返回。
我覺得關於點1)一個功能缺失和點2)在實施中的一個錯誤,雖然我沒有足夠的信心在我的知識SS來彌補!請幫忙!
謝謝。