IISでのホスティング-テスト用
IISでサービスをホストするには、仮想ディレクトリを作成する必要があります。これを行うには2つの方法があります。
簡単にテストするには:
- Visual StudioでWCFサービスプロジェクトを右クリックし、[プロパティ]/[Web]を選択します
- そこで「ローカルIISWebサーバーを使用する」を選択します。
- 「IISExpressを使用する」を有効にしないでください。
- プロジェクトURLは、サーバーがWeb上に表示されるアドレスです。
http://yourhost/somepath/
- [仮想ディレクトリの作成]をクリックします(このために管理者としてVisual Studioを実行する必要がある場合がありますが、この手順は1回だけ必要であり、日常的に使用するための管理者権限は必要ありません)。
その後、仮想ディレクトリが設定され、IISはすべての要求をhttp://yourhost/somepath
WCFサービスに転送します。これは、プロジェクトディレクトリ内のVisual Studioによって生成されたバイナリを指すため、再構築によって自動的に処理されることに注意してください。
これは、開発とテストのための最も簡単なオプションです。VisualStudioを開く必要はありませんが、行った変更はすべて、デプロイされたインスタンスに自動的に反映されます。
IISでのホスティング-本番用
本番環境では、実際の仮想ディレクトリを作成する必要があります。それを行うには:
- サービスをホストするディレクトリ(たとえば、 `C:\ inetpub \ yoursite \ yourservice \')を作成します。これは、ファイルシステム上の任意のディレクトリにすることができます。
- Webサービスをこのディレクトリにコピーします(Visual Studioにはこれを自動化する方法がありますが、私はこれを使用したことがないので、それがどのように機能するかはよくわかりません)。
- 「インターネットインフォメーションサービス(IIS)マネージャー」を開きます(管理者として実行する必要があります)
- 左側のペインに、構成済みのIISインスタンスとサイトが表示されます。これを初めて実行し、左側のペインが空の場合(デフォルトのサイトがあるはずです)、右クリックして[Webサイトの追加]を選択します。
- Webサイトを右クリックし、[仮想ディレクトリの追加]を選択します。エイリアスは新しいディレクトリの表示名です。たとえば
http://yoursite/alias/
、物理パスは、サービスを展開したディレクトリを指しているだけです。
セルフホスティング
コンソールアプリはセルフホスティングと呼ばれます。これがVisualStudioの外部で機能しない場合は、通常、に問題がありますapp.config
。ここに簡単な例があります。
モノでのホスティング
Monoの場合、次の3つのオプションがあります。
- セルフホスティング
- 本番用のmod-monoを使用したApache
- テストに現在のディレクトリを使用するmod-monoを使用したApache
セルフホスティングとは、いくつかのことを実行する単純なコンソールアプリケーションを作成することを意味します
var host = new System.ServiceModel.ServiceHost(typeof(MyService));
host.Open();
Console.WriteLine("Service running");
foreach (var se in host.Description.Endpoints)
Console.WriteLine(se.Address);
Console.ReadLine();
host.Close();
コマンドラインでMonoを使用して実行します。
一部のサンプルを含め、mod-monoを使用してApacheをセットアップする方法については、mod-monoを使用してApacheでホストされているWCFサービスにアクセスできないを参照してください。
ここには2つのオプションがあります。Apacheによって取得されたディレクトリにサービスをコピーするか、mod-mono-server
手動で開始して任意のディレクトリ(たとえば、テスト用の現在のディレクトリ)を指定することもできます。