2010-09-03 15 views

cevap

3

Hayır, WCF Veri Hizmetleri, REST'in üzerine kurulur ve REST'in kendisi, GET, PUT, POST vb. HTTP fiillerine dayanarak çok sıkı ve tamamen yapılır - NetTcp üzerinden bunları çalıştıramazsınız, çünkü bunlar içsel olarak bağlanmıştır HTTP protokol yığını.

Belki iletilmekte olan verileri azaltmak için başka seçenekler var mı? Nesnelerinizi ikiye katlayın - eğer isterseniz, hem bir kerede alınan satırların sayısı, hem de iletilen nitelik/veri alanlarının sayısı üzerindeki yağları düzeltin. Muhtemelen en umut verici yaklaşımın budur.

+0

Özel bir ana makine oluşturmak teknik olarak mümkün olsa da, bu uygun hale getirmek için OData çok sıkı bir şekilde HTTP'ye bağlanır. Çok kötü ... kalıcı bağlantıları olan bir OData servisine sahip olmak güzel olurdu. –

4

Bunu kendi başıma araştırırken, MSDN article on Self-Hosted WCF Data Services ile karşılaştım. Bu makalede, hizmeti hala HTTP (WebServiceHost'dan türetilmiş) gerektiren DataServiceHost ile barındırabileceğinizi unutmayın.

Ayrıca kendi sunucunuzu IDataServiceHost kullanarak da döndürebilirsiniz. WCF konak uygulama çok sınırlayıcı olduğu durumlarda

, sen ayrıca veri hizmeti için özel konak tanımlayabilirsiniz: İşte MSDN makaleden bir alıntı. , IDataServiceHost arabirimini uygulayan herhangi bir sınıf, veri hizmeti için ağ ana bilgisayarı olarak kullanılabilir. Özel bir konak IDataServiceHost arabirimini uygulayan ve veri hizmeti ev sahibi aşağıdaki temel sorumlulukları ele edebilmelidir:

  • hizmet kök yoluyla veri hizmeti sağlamak.
  • İşlem isteği ve yanıtı bilgileri IDataServiceHost üye uygulamasına iletir.
  • Veri hizmeti tarafından yükseltilen istisnaları yapın.
  • Sorgu dizesinde parametreleri doğrulayın.

makale MS düzgün ağ arabirim sorumluluklarından veri hizmet sorumluluklarını segrated kaydettiğini gösteriyor gibi görünüyor. Eğer öyleyse, o zaman bir NetTcpDataServiceHost yazabilmeliyim. Hiç bir IDataServerHost yazdı mı? Baska öneri?

+0

IDataServiceHost hala HTTP gerektirir, değil mi? –

+0

Merak ediyorum Simon - WCF/TCP kurulumunda WCF Veri Hizmetlerinin özelleştirilebilir sorgulama özelliklerini sağlamak için iyi bir çözüm buldunuz mu? –

+1

İyi bir şekilde değil. Hizmetim için ihtiyaç duyduğum ve net.tcp üzerinden yaptığım OData URI şemasının bir alt kümesini uygulamıştım, ancak bu gerçekten bir OData hizmeti değil. CodePlex'te ODataLib'e bakmayı deneyebilirsiniz ... bu, Microsoft'un OData hizmet çekirdeğinin açık kaynaklı uygulamasıdır.Bir noktada bunu gözden geçirmeyi ve neyin toplanabileceğini görmeyi umuyorum, ancak proje programları march apace. Nasıl olduğunu biliyorsun. –

İlgili konular