2009-09-02 13 views
2

WCFを実装する再利用可能な.NETアセンブリを作成しようとしています。ASP.NETでWCF RESTを実装する方法

私の現在の問題は、(ServiceContract、DataContract、およびWebGet属性で適切に装飾されている)アセンブリを取得し、既存のASP.NET WebFormsアプリケーションで参照してRESTを使用して公開する方法です。

理想的には、JQuery互換のBare XML、JSON、およびSOAP WebServicesの異なるエンドポイントが好きですが、今はBare XMLを動作させることに満足しています。今すぐ入手できるのは404リソースが見つかりません)。

また、APIにはさまざまな方法があります。そのため、アセンブリをラップするsvcファイルを作成しなければならないのは苦しいことです。私はこの仕事を得る一度ここで

は、だから私のweb.configファイルで私のsystem.serviceModel

あり、理論的には、netTcp経由でこのアセンブリをホストする.NET Consoleアプリケーションを記述することができます。

私はこれは私が私の `WcfService1.WcfService`と実装の周りの呼び出しをラップし、新たなSVCファイルを作成し、この

    を行うための3つの可能な方法を作ってみた ある実装することが分かってきた唯一の3つの方法は、 `WcfService1.ITest`を呼び出し、適切なFactory属性をマークアップに入れてください。これは ではなく、であり、まったく望ましいです。
    もう1つの方法は、WebServiceHostクラスをどこかに作成することです(私はGlobal.asaxを使用しますか?)、これを行う方法はわかりませんが、これがまったく有効な解決策であれば。
    使用ASP.NET MVC私は、SVCのアプローチと同じ問題がプレイするには来ると思いますが、ソリューションを実装します。

ご協力いただきありがとうございます。あなたは基本的に2つの事必要

答えて

2

  • は(IIS、セルフホスティングコンソールアプリでに)
をそのサービスをホストする方法を見つける
  • アセンブリにあなたのサービスを作成し、コンパイル

    私はあなたが既にステップ1を済んだと信じています。だから今この事を主催する場所を決定する必要があります。その場合、IIS
    でホスティング

    、あなたは仮想ディレクトリのどこかに「MyService.svc」ファイルを作成し、そのホスト工場として「WebServiceHostFactory」を指定する必要があります - それはそれです!

    "MyService"というファイルを作成します。どこかの仮想ディレクトリでSVC」、そしてこの内容を使用します。

    <%@ ServiceHost Language="C#" Debug="True" 
        Service="YourNamespace.YourService" 
        Factory="System.ServiceModel.Activation.WebServiceHostFactory" %> 
    

    あなたがする必要があるすべてでなければなりません - 新しい.NET 3.5 WebServiceHostFactoryは、すべての残りの部分の面倒を

    セルフホスティングを。この場合
    は、あなたがホストEXEを作成する必要があります - コンソールアプリケーションやWindowsサービスのいずれかをその中に、あなたがWebServiceHostのインスタンスを作成し、あなたのサービスクラスをロードしたい - それは基本的にすべてです:。

    WebServiceHost wsh = 
        new WebServiceHost(typeof(YourNamespace.YourService), 
            new Uri("http://localhost/YourServiceBaseUrl")); 
    wsh.Open(); 
    

    あなたの問題はどこですか? :-)あなたはすでにホスティングにあなたの心を作ったことがありますか?

    RESTサービスが起動して実行されると、すべてのアプリとプロジェクトは、基本サービスのURL(自分のホストでWebServiceHostを作成し開いたときに指定したURL)に移動して使用する必要があります。 * .SVCファイルなど、あなたのMyService.svcファイルの生活(仮想ディレクトリのパス - WCF RESTスターターキットのさまざまな側面を示して本当に良いscreencast series by Aaron Skonnardオンラインで利用可能があります例えば

    http://localhost/VirtualDir/YourService.svc 
    

    のようなものとどのようにあなたのプロジェクトでそれを非常に簡単に使用するか強くお勧めします!マーク

  • 関連する問題