2

C# Visual Studio 2012 を使用して wcf サービスを作成しています。

WSCF.blue ツールで xsd-s から wsdl を生成しました。次に、同じツールを使用して Web サービス コードを生成しました。WSCF.blue は、サービス コントラクトとデータ コントラクトを作成しません。インターフェイスと、インターフェイスを実装するクラスを含む .svc ファイルを作成します。

Web サービス コードを生成するときに、抽象クラスを作成するオプションを選択しました。これは、これらのクラスの実装を別のファイルに保持できるようにするためです。

抽象クラスは次のようになります。

 [KnownType(typeof(WebMobileImplementation))]     
public abstract class WebMobile : IWebMobile
{
      public abstract PutLocationsResponse PutLocations(PutLocationsRequest request);
}

実装クラス (別のファイル内) は次のようになります (今のところ):

 public class WebMobileImplementation : WebMobile
{
    public  override PutLocationsResponse PutLocations(PutLocationsRequest request)
    {
        PutLocationsResponse response = new PutLocationsResponse();
        return response;
    }
}

サービスを参照しようとすると、次のメッセージが表示されます。サービスの実行時に「表示」されます。それらを「接続」するために他に何ができますか?

4

1 に答える 1

0

WCF 4.0 では、Web.config でサービスの種類にマップする仮想サービス アクティベーション エンドポイントを定義できます。これにより、物理的な .svc ファイルを維持する必要なく、WCF サービスをアクティブ化できます。

<serviceHostingEnvironment>
  <serviceActivations>
    <add relativeAddress="WebMobile.svc" 
         service="WebMobileNamespace.WebMobileImplementation"/>
  </serviceActivations>
</serviceHostingEnvironment>
于 2013-01-22T20:04:15.790 に答える