我希望创建一个将托管在服务器 A 上的服务(例如 URL: http://servera:807
)。但是我的主要应用程序需要托管在服务器 B 上(例如 URL: http://serverb:801
)。
我很好奇这是否可能?我的服务和主要应用程序需要位于不同服务器上的原因是我无法控制的。当前系统使用具有相同设置的 WCF,我想摆脱它。
在示例中,服务和客户端似乎都托管在同一位置/同一解决方案中
我希望创建一个将托管在服务器 A 上的服务(例如 URL: http://servera:807
)。但是我的主要应用程序需要托管在服务器 B 上(例如 URL: http://serverb:801
)。
我很好奇这是否可能?我的服务和主要应用程序需要位于不同服务器上的原因是我无法控制的。当前系统使用具有相同设置的 WCF,我想摆脱它。
在示例中,服务和客户端似乎都托管在同一位置/同一解决方案中
以下是解决方案/项目的潜在设置。它简单且不完整,但我认为有助于说明一种可能的设置。您还需要考虑如何处理会话信息和身份验证,因为 MVC 和 ServiceStack 分别处理这些。请参阅CustomAuthenticationMVC
ServerA.sln(ASP.NET Web 应用程序)
ServerB.sln(MV4 应用程序)
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);
}
}