3

asmx Web サービスを WCF に変換しています。これは本質的に、ファイルの種類を .asmx から .svc に変更する必要があるということですか?

4

1 に答える 1

10

すべての WCF サービスには、ホスト プロセス (Windows サービス、IIS、またはその他の .NET プログラム) が必要です。このホストは、System.ServiceModel.ServiceHost (または任意のカスタム System.ServiceModel.ServiceHostBase) のインスタンスを作成し、サービス構成、動作、チャネルを管理します。

ただし、サービスが IIS でホストされている場合は、動作が少し異なります。デフォルトでは、拡張子が .svc の物理ファイルを作成する必要があります。これは純粋な IIS 要件です。.svc ファイル タイプを処理する IIS 内のモジュールがあります。このファイルは、サービス タイプとオプションでサービス ホスト ファクトリ タイプの単なる宣言です。

<%@ ServiceHost Language="C#" Debug="true" Factory="System.ServiceModel.Activation.ServiceHostFactory" Service="MyFamousCalculatorService" CodeBehind="MyFamousCalculatorService.svc.cs" %>

WCF 4.0 以降、物理的な .svc ファイルを使用せずに IIS でサービスを作成および展開できます。serviceActivationsこれは、system.serviceModel構成セクションの構成を使用して実行できます。

<configuration>
  <system.serviceModel>
    <serviceHostingEnvironment>
      <serviceActivations>
        <add relativeAddress="MyFamousCalculatorService.svc" service="MyFamousCalculatorService"/>
      </serviceActivations>
    </serviceHostingEnvironment>
  </system.serviceModel>
</configuration>
于 2013-06-28T12:01:29.377 に答える