2012-02-27 9 views
8

私はWCFを完全に新しくしており、サービスを展開しています。私はIIS 6.0でサービスを設定する際に問題があります。IIS 6.0でWCFサービスを展開する方法は?

WCFサービスをIIS 6.0に展開するための正確な手順が必要です。

注:私はWCFサービスアプリケーションを作成し...だから

、私はIIS 6.0に私のWCFサービスを展開するに従う必要があります正確な手順は何ですか?

+2

参照:http://www.youtube.com/watch?v=mX8quq7MoeI –

+2

またはMSDNはこちら:http://msdn.microsoft.com/en-us/library/ms733766.aspx –

答えて

11

あなたは基本的に2つのオプションがあり、私は信じている:

オプション1 - "ビン"(好ましい選択肢)を展開

  1. DLL(クラスライブラリ)にあなたのWCFサービスをコンパイル
  2. IIS6でWebサイトを作成する
  3. WCF DLLをWebサイトのフォルダにコピーする
  4. 作成するそのウェブサイトでファイル
  5. あなたのWCFサービスは現在、ウェブサイトのベースアドレス、プラス*.svcの名前で到達可能になります

など、あなたのエンドポイントおよびサービス構成を定義するために、ウェブサイトのフォルダ内の適切な web.configを追加ファイル、例えば

http://myserver/someweb/Myservice.svc 

あなた*.svcはこのようなものになります。

<%@ ServiceHost Language="C#" Debug="true" 
    Service="WCF_Simple_Service.HelloIndigoService" %> 

Service=属性は、サービスを実装するクラスを表し、 - その名前空間で完全修飾。

オプション2からApp_Code

  1. にものを入れ、そのウェブサイト
  2. *.svcファイルを作成し、直接 .\App_Codeフォルダ
  3. にすべてのあなたのWCF関連*.csファイルを置くIIS6
  4. をウェブサイトを作成します
  5. 適切なweb.configをWebサイトフォルダに追加して、エンドポイントとサービス設定などを定義します。

あなたのWCFサービスは、ウェブサイトのベースアドレスに加えて*.svcファイルの名前にアクセスできるようになりました。

http://myserver/someweb/Myservice.svc 

あなた*.svcは次のようになります:

<system.serviceModel> 
    <behaviors> 
     <serviceBehaviors> 
      <behavior name="WithDebug"> 
       <serviceMetadata httpGetEnabled="true" /> 
       <serviceDebug includeExceptionDetailInFaults="true" /> 
      </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 
    <services> 
    <service name="SimpleWCF.HelloIndigoService" behaviorConfiguration="true"> 
     <endpoint 
      address="" 
      binding="basicHttpBinding" 
      contract="SimpleWCF.IHelloIndigoService" /> 
     <endpoint 
      address="mex" 
      binding="mexHttpBinding" 
      contract="IMetadataExchange" /> 
    </service> 
    </services> 
</system.serviceModel> 

あなたは基本的にあなたの<service>タグを定義する - そして再び:

<%@ ServiceHost Language="C#" Debug="true" 
    Service="Service" 
    CodeBehind="~/App_Code/Service.cs" %> 

は、サンプルweb.configはこのようなものをシンプルになります。 name=は、そのネームスペースで完全修飾されたサービスを実装するクラスを示します。 IIS6はHTTPだけをサポートするので、少なくとも1つのエンドポイントを含める必要があります。basicHttpBindingまたはwsHttpBindingを使用することができます。 "mex"エンドポイントはオプションですが、特に開発とテストには非常に便利です。これにより、クライアントはサービスを「発見」してサービス記述を取得できるため、クライアントとのインタフェースが可能になります。

サービスがIISに配備されたら、WCFで無料で出荷されるWCF Test Clientや汎用のSOAPテストユーティリティであるSoapUIなどのツールを使用して実際にサービスを見ることができます。つかいます)。

+0

追加する必要はありますか最初のエンドポイントのアドレスタグにあるものは何ですか? – Willem

+2

@Willem:通常は、IISでホストする場合は、アドレスを制御するIISの仮想ディレクトリです。 'MyService'のようなものを「相対アドレス」に追加すると、サービスは' http:// MyServer/VirtualDir/MyService.svc/MyService'にありますが、 '* .svc'ファイルはとにかく、それらのアドレスは少しclunkyを得る.... –

+1

それは素晴らしいです。どうもありがとうございました – Willem

関連する問題