SORU
2 Aralık 2008, Salı


Çoklu sözleşmeler ile XML ServiceHost çalıştırın

Tek bir sözleşme ile bir ServiceHost çalışan bu gibi iyi çalışıyor

servicehost = new ServiceHost(typeof(MyService1));
servicehost.AddServiceEndpoint(typeof(IMyService1), new NetTcpBinding(), "net.tcp://127.0.0.1:800/MyApp/MyService1");
servicehost.Open();

Şimdi (3, 4, ...) ikinci bir sözleşme eklemek istiyorum. İlk tahminim böyle: daha fazla uç noktaları eklemek olacaktır

servicehost = new ServiceHost(typeof(MyService1));
servicehost.AddServiceEndpoint(typeof(IMyService1), new NetTcpBinding(), "net.tcp://127.0.0.1:800/MyApp/MyService1");
servicehost.AddServiceEndpoint(typeof(IMyService2), new NetTcpBinding(), "net.tcp://127.0.0.1:800/MyApp/MyService2");
servicehost.Open();

Ama tabii ki bu işe yaramazsa, bu yaratılış ServiceHost (ya da geçmek MyService1 olarak parametre veya MyService2 - ilave edebilirim, çok uç noktalara hizmet, ama hepsi için aynı Sözleşme, bu yana sadece kişisel bir uygulama?< / ^ br . Nokta, burada eksik olduğumu hissettim. Emin son nokta-sözleşme ekliyorum, ya da her bir uygulama sağlamak için bir yol olmalı?

CEVAP
2 Aralık 2008, Salı


Aynı sınıfta iki hizmet (arayüzleri) uygulamak gerekir.

servicehost = new ServiceHost(typeof(WcfEntryPoint));
servicehost.Open(); 

public class WcfEntryPoint : IMyService1, IMyService2
{
    #region IMyService1
    #endregion

    #region IMyService2
    #endregion
}

BİLGİNİZE: ben sık sık kısmi derslerim ana sınıfı kod okumak için daha kolay hale getirmek için kullanın:

// WcfEntryPoint.IMyService1.cs
public partial class WcfEntryPoint : IMyService1
{
    // IMyService1 methods
}

// WcfEntryPoint.IMyService2.cs
public partial class WcfEntryPoint : IMyService2
{
    // IMyService2 methods
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Gigawipf

    Gigawipf

    18 ŞUBAT 2010
  • placeboing

    placeboing

    7 Mart 2006
  • Crossover

    Crossover

    18 HAZİRAN 2007