2008-10-23 8 views
8

Szukam informacji od osób używających WCF w środowisku korporacyjnym.WCF w przedsiębiorstwie, wszelkie wskazówki od twojego doświadczenia?

Jakie były główne przeszkody związane z wprowadzeniem? Problemy z wydajnością? Wszelkie wskazówki zostały docenione!

Proszę podać ogólne statystyki i konfiguracje serwera, jeśli potrafisz!

+0

To jest naprawdę niejasne, tak bardzo, że nie sądzę, że otrzymasz przydatne odpowiedzi. Spróbuj być bardziej konkretny. –

Odpowiedz

0

WCF jest zdecydowanie świetny do zastosowań w przedsiębiorstwach, ponieważ został zaprojektowany z myślą o skalowalności, rozszerzalności, bezpieczeństwie itp.

jak powiedział Maxidad, może być bardzo trudne, ponieważ wyjątki często mówią prawie nic, jeśli korzystasz z zabezpieczeń (z niedwuznacznie dla scenariuszy korporacyjnych) masz do czynienia z certyfikatami, bezsensownymi MessageSecurityExceptions i tak dalej.

czynienia z usług WCF jest zdecydowanie trudniej niż ze starym usługi ASMX, ale jest warte wysiłku raz jesteś w.

zaopatrujące configs serwer nie będzie przydatna, ponieważ ma się dopasować do swojego scenariusza. używanie właściwych wiązań jest bardzo ważne, podobnie jak bezpieczeństwo, concurreny. nie ma jednej drogi do przejścia, gdy używasz wcf. tylko pomyśl o swoich wymaganiach. potrzebujesz callbacków, jakie są twoi użytkownicy? jakiego rodzaju zabezpieczenia potrzebujesz?

Jednak WCF będzie zdecydowanie odpowiednią technologią dla aplikacji na skalę przemysłową.

1

Jak już wspomniano, konfiguracja koszmaru i wyjątki mogą być tajemnicze. Możesz włączyć śledzenie i skorzystać z przeglądarki dziennika śledzenia, aby ogólnie rozwiązać problem, ale zdecydowanie jest to zmiana biegów, aby rozwiązać problem z usługą WCF, zwłaszcza po wdrożeniu i masz problemy, zanim Twój kod zostanie uruchomiony.

Do komunikacji między komponentami w ramach mojej organizacji wykorzystałem [NetDataContract] w odniesieniu do moich usług i serwerów proxy, które są zalecane (nie można integrować z platformami spoza platformy .NET i do integracji potrzebny jest zestaw z umowami). Zauważyłem, że wydajność jest znakomita, a mój ogólny czas rozwoju został skrócony dzięki używaniu go. Dla nas to było właściwe rozwiązanie.

+0

Zamiast NetDataContract, możesz użyć DataContractSerializer, zastanowić się nad złożeniami dla wszystkich atrybutów [DataContract] oraz w klasach serializacji WCF pass w znanych typach z refleksji. Utrzymuje to dziedziczenie i usuwa cały ból związany z [KnownType] – Steve

3

Niedawno zostałem zatrudniony w firmie, która wcześniej zajmowała się komunikacją klient/serwer z tradycyjnymi usługami internetowymi asp.net i przekazywaniem datasetu tam iz powrotem.

Ponownie napisałem rdzeń, więc teraz jest "podłączony" klient Net.Tcp ... i wszystko odbywa się przez to. To była warta tydzień "odkryć w produkcji" ... ale warto.

Punkty bólowe, które musieliśmy sprawdzić późno w grze: 1) Domyślne dławienie blokowało użytkownika 11-tego (domyślnie dopuszcza tylko 10). 2) Domyślna "maxBufferSize" została ustawiona na 65k, więc pierwsza bitmapa, którą trzeba pobrać, spowodowała awarię serwera :) 3) Inne domyślne konfiguracje (maksymalne połączenia, maksymalne jednoczesne połączenia itp.).

W sumie było to absolutnie tego warte ... aplikacja jest o wiele szybsza po prostu przez zmianę ich struktury i teraz, gdy mamy "połączonych" użytkowników ...serwer może wysyłać wiadomości do klientów.

Innymi pięknymi korzyściami jest to, że skoro wiemy 100%, kto jest podłączony, możemy faktycznie egzekwować naszą politykę licencjonowania na poziomie aplikacji. Do tej pory (i zanim zostałem zatrudniony) moja firma musiała po prostu zalogować się, a następnie pod koniec miesiąca rachunki klientów dodatkowych do łączenia zbyt wiele razy.

+0

+1. Wystarczy wspomnieć o maxBufferSize i innych domyślnych, strasznie frustrujące, aby debugować, gdy po raz pierwszy trafisz na usługę, która w przeciwnym razie działa doskonale. –

Powiązane problemy