Yakın zamanda bir WCF hizmeti (dll) ve bir hizmet ana bilgisayarı (exe) oluşturdum. Hizmeti başarıyla WcfTestClient'e ekleyebildiğim için WCF hizmetimin düzgün çalıştığını biliyorum.
Ancak, WCF'mi bir hizmet sunucusundan (exe) kullanmaya başladığımda bir sorunla karşılaşıyorum. Servis ana bilgisayarıma (exe) WCF (dll) için bir referans ekleyebilir ve exe için gerekli bileşenleri oluşturabilirim; hizmet yükleyicisi, hizmet ana bilgisayarı ve app.config gibi, InstallUtil kullanarak exe'yi derleyin ve son olarak yükleyin. Ancak hizmeti Microsoft Yönetim Konsolu'nda başlatmaya çalıştığımda, hizmet başlatıldıktan hemen sonra duruyor.
Bu yüzden, bu soruna tam olarak neyin neden olabileceğini araştırmaya başladım ve Olay Görüntüleyicideki Uygulama Günlüğünden bu hatayla karşılaştım.
Açıklama:
Hizmet başlatılamıyor. System.InvalidOperationException: "Hizmet" hizmetinin sıfır uygulama (altyapı dışı) uç noktası var. Bunun nedeni, uygulamanız için hiçbir yapılandırma dosyasının bulunmaması veya yapılandırma dosyasında hizmet adıyla eşleşen hiçbir hizmet öğesinin bulunamaması veya hizmet öğesinde hiçbir uç noktanın tanımlanmamış olması olabilir.
Bu hata aslında OnStart
; exe'mden, bu aramayı yaptığımda ServiceHost.Open()
. Diğer kişilerin bu sorunla karşılaştığı çok sayıda gönderi gördüm, ancak hepsi olmasa da çoğu hizmet adı veya sözleşmesini iddia ediyor; ad alanı ve sınıf adı belirtilmiyor. Bu iki girişi de yapılandırma dosyamda kontrol ettim; hem exe hem de dll'de ve MÜKEMMEL eşleşiyorlar. Bir noktada kör olmadığımdan emin olmak için ofisteki diğer insanları iki kez kontrol ettim, ama elbette benimle aynı sonuca vardılar, her şeyin doğru şekilde belirtilmiş gibi göründüğü. Bu noktada neler olup bittiğini gerçekten bilemiyorum. Biri bana bu konuda yardımcı olabilir mi?
Bunun olmasının olası bir nedeni olarak ortaya çıkan başka bir şey de app.config dosyasının asla okunmamasıdır; en azından okunması gerektiğini düşündüğüm değil. Sorun bu olabilir mi? Öyleyse, bu sorunu nasıl çözebilirim? Yine, HERHANGİ bir yardım takdir edilecektir.