1

サーバーAでホストされるサービスを作成したいと思います(例:URL:) http://servera:807。ただし、メインアプリケーションはサーバーBでホストする必要があります(例:URL:) http://serverb:801

これが可能かどうか知りたいですか?私のサービスとメインアプリケーションを別のサーバーに配置する必要がある理由は、私の制御が及ばない理由によるものです。現在のシステムは同じセットアップでWCFを使用しているので、これから離れたいと思います。

例では、サービスとクライアントはすべて同じ場所/同じソリューションでホストされているようです

4

1 に答える 1

3

以下は、ソリューション/プロジェクトの潜在的な設定です。単純で不完全ですが、1つの可能な設定を説明するのに役立つと思います。また、MVCとServiceStackはこれを別々に処理するため、セッション情報と認証をどのように処理するかを検討する必要があります。CustomAuthenticationMVCを参照してください

ServerA.sln(ASP.NET Webアプリケーション)

  • ServiceModelプロジェクト-リクエストオブジェクトとdtosを保持します(これはServerAソリューションとServerBソリューション間で共有できます)
  • ServiceInterfaceプロジェクト-サービスの実装があります
  • Global.asx-ServiceStackを構成するためのApplication_Startメソッドがあります

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アプリケーション内でServiceStackAPIを呼び出す方法の例

public class FoosController
{
    public ActionResult Index()
    {
        var client = new JsonServiceClient("http://servera:807");
        var response = client.Get(new Foos());
        return View(response);
    }
}
于 2013-03-12T16:20:34.083 に答える