2009-11-10 10 views
16

Mam usługę WCF hostowaną jako usługa systemu Windows, a klient jest aplikacją ASP.Net pobierającą usługi usługi WCF.netTcpBinding lub wsHttpBinding

W trakcie wdrażania zabezpieczeń, jestem zdezorientowany, nad którym spośród netTcpBinding/wsHttpBinding będzie odpowiedni dla mojej sprawy.

Najprawdopodobniej wszystkie aplikacje w scenie (usługa WCF, usługa systemu Windows, witryna ASP.Net) będą znajdować się na różnych serwerach w naszym biurze, a więc w intranecie. Strona ASP.Net będzie dostępna dla użytkowników przez Internet.

Chociaż zawsze mogę użyć wsHttpBinding tutaj, czy w moim przypadku będzie odpowiednie ustawienie punktu końcowego usługi za pomocą netTcpBinding?

Odpowiedz

13

to sprawdzić dla porównania wszystkich różnych wybudowany w oprawach:

Configuring System-Provided Bindings - MSDN

W Twoim przypadku, tak długo, jak to jest serwer WWW kontaktując usługę WCF i nie trzeba do zapewnić punkt końcowy dla zewnętrznych użytkowników usługi ... netTcpBindnig powinien być gotowy do pracy.

+0

Dziękuję za odpowiedź. Myślę, że nadal muszę określić punkt końcowy, w przeciwnym razie, jak dodać odniesienie do strony internetowej klienta ... proszę poprawić mnie, jeśli czegoś brakuje. Czy miałeś na myśli coś innego, gdy mówisz ... "nie musisz podawać punktu końcowego dla zewnętrznych użytkowników usługi" – iniki

+0

Kiedy mówisz o witrynie, zakładałem, że chodzi ci o stronę ASP.NET uruchomioną na twoim sprzęcie twoja sieć. Jeśli tak, wszelkie połączenia z usługą WCF zostaną wykonane z serwera WWW do usługi przed zwróceniem jej do klienta.Jeśli chcesz, aby osoby trzecie łączyły się z twoją usługą, wówczas wsHttpBinding byłoby lepsze, ponieważ nie wiązałoby ich z platformą. –

+0

Dziękujemy! założyłeś to dobrze :-) – iniki

9

Możesz wystawić swoją usługę na więcej niż jedno wiązanie, jeśli chcesz, możesz więc użyć obu.

Jednakże, jeśli kontrolujesz zarówno klienta, jak i usługę, a oni używają WCF, netTcpBinding jest znacznie szybszy. O ile nie ma zapory ogniowej między tymi dwoma, wybrałbym to.

5

Używaj netTcpBinding zamiast wsHttpBinding, jeśli chcesz wymienić interoperacyjność na wydajność, wiedząc, że możesz łatwo anulować transakcję, jeśli nie jesteś zadowolony z wyników (jest to kwestia zmiany wartości konfiguracyjnych).

6

Ponieważ Twoje usługi WCF będą dostępne dla aplikacji znajdujących się w Twoim biurze (INTRANET), skorzystam z usługi netTcpBinding.

W scenariuszu intranet, zaleca się stosowanie netTcpBinding chyba że masz konkretny wymóg korzystania z innych wiązań, takie jak wsHttpBinding. Domyślnie funkcja netTcpBinding używa kodowania binarnego i bezpieczeństwa transportu, co zapewnia lepszą wydajność.

następującymi adresami pomoże uzyskać więcej informacji

http://msdn.microsoft.com/en-us/library/cc949026.aspx

http://msdn.microsoft.com/en-us/library/ms730879.aspx

0

Ponieważ usługa jest usługą WCF okien +1 dla netTcpBinding. Hostowanie netTcpBinding na IIS jest trudne.