下面是設置瞭解決方案/項目的潛力。這是簡單和不完整的,但我認爲有助於說明一個可能的設置。您還需要考慮您想要如何處理會話信息和身份驗證,因爲MVC和ServiceStack分開處理。見CustomAuthenticationMVC
ServerA.sln(ASP.NET Web應用程序)
- ServiceModel項目 - 保持請求的對象和DTOS
- serviceInterface等項目(這可以ServerA和ServerB上的解決方案之間共享) - 有服務實現
- Global.asx - 具有Application_Start方法中配置ServiceStack
ServerB.sln(MV4應用)
- ServiceModel項目(共享)
- 瀏覽
- 模型
- 控制器
在ServiceModel項目類
實施例:
[Route("/Foos")]
public class Foos : IReturn<FoosResponse>
{}
public class FoosResponse
{
public FoosResponse()
{
this.ResponseStatus = new ResponseStatus();
}
public ResponseStatus ResponseStatus {get; set;}
}
個
在serviceInterface等項目的類實例
public class FoosService : Service
{
public FoosResponse Get(Foos request)
{
return new FoosReponse();
}
}
示例如何調用MVC4應用程序內ServiceStack API
public class FoosController
{
public ActionResult Index()
{
var client = new JsonServiceClient("http://servera:807");
var response = client.Get(new Foos());
return View(response);
}
}
我們有一個類似的設置,在Web應用程序是一個Java應用程序它會調用在C#中創建的Rest服務。 Java應用程序管理用戶會話等。是否提到了Web服務的服務?或者是其中一個Web應用程序? – user356247 2013-03-12 15:05:53
服務器A將是一系列ServiceStack服務暴露某些數據。服務器B上的一個將是一個Web應用程序(MVC 4)。 – CallumVass 2013-03-12 15:25:48
在這種情況下,您可以在WebApplication中使用控制器操作,該操作需要調用ServiceStack服務的路徑,要傳遞的數據以及要使用的Http動詞。然後,客戶端可以用所需的一切來調用此操作方法,然後控制器操作可以使用數據調用approprite服務方法,獲取響應並將其傳回客戶端。 Web應用程序還可以管理用戶會話和其他請求上下文信息。 – user356247 2013-03-12 15:54:02