2011-07-07 8 views
1

私はWCF Web APIを使用して安心してサービスを実装しており、IISに公開したいと考えています。 開発プロセス中、私はこのサービスをコンソールアプリケーションとして使用していました。すべての設定はAPIを使用して行われました。 私はASP.NETアプリケーションとしてサービスを公開しようとしています。私が見る唯一の方法は、何とかすべての設定をWeb設定ファイルに移動することです。IISへのWCF Web API設定ファイル

ここでコード化された構成:

var cfg = HttpHostConfiguration.Create() 
       .AddMessageHandlers(typeof(AllowCrossDomainRequestHandler)); 

using (var host = new HttpConfigurableServiceHost(typeof(RESTfulService), cfg , new Uri("http://localhost:8081"))) 
      { 
       var endpoint = ((HttpEndpoint)host.Description.Endpoints[0]); //Assuming one endpoint 
       endpoint.TransferMode = TransferMode.Streamed; 
       endpoint.MaxReceivedMessageSize = 1024 * 1024 * 10; // Allow files up to 10MB 

       host.Open(); 
       Console.WriteLine("Host opened at {0} , press any key to end", host.Description.Endpoints[0].Address); 
       Console.ReadKey(); 
      } 

どのように私のweb.configファイルには、この設定を反映するために見えるでしょうか? または、ASP.NETを使用する代わりに他の方法がありますか?

何か助けていただければ幸いです。

答えて

1

既存の設定を保存したい場合は、すべての設定をメソッドに組み込み、global.asaxApplication_Start()メソッドから呼び出すことができます。すべてのGlobal.asaxメソッドはWCFでASP.NETと同じように呼び出されます。

または、すべての設定が含まれているカスタムServiceHostFactoryおよびServiceHostにサービスを接続することができます(これは現在のアプリで使用している方法です)。

+0

ServiceHostはWCFのものであり、WCF Web APIのものではありません。 ServiceHostを使用することで、WCF Web APIが提供するすべての利点が失われます。 – aumanets

+0

ええ、あなたが正しいと思います。 WCF Web APIはServiceHostの 'WebServiceHost'という風味を提供しますが、通常のWebAPIほどの機能は提供していません...彼らはすでに複雑なフレームワークにいくつかの複雑さを加えましたか? :) – CodingWithSpike

+0

RESTfulタイプのサービスを作成するためのシンプルで体系的な方法を追加しました。 WCFのWeb APIは、プレビュー4のバージョンです、私はこのAPIを将来的に改善されると信じています。私は、今のところサーバー側にハードコードされたバージョンに固執すると思います。ありがとう、あなたの助けに感謝します。 – aumanets