下面是设置了解决方案/项目的潜力。这是简单和不完整的,但我认为有助于说明一个可能的设置。您还需要考虑您想要如何处理会话信息和身份验证,因为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