2011-08-12 7 views
5

Pracuję więc z konfigurowaniem punktów końcowych dla usługi WCF. Nie mam prawie żadnego doświadczenia z usługami jako całością, ale zostałem pochłonięty w trakcie projektu, który je wykorzystuje. Z grubsza rozumiem, co robi każdy atrybut w punkcie końcowym, z wyjątkiem jednego. "bindingConfiguration".Co to jest atrybut bindingConfiguration odpowiedzialny za konfigurację punktu końcowego BasicHttpBinding?

Oto zasłonięte wersja mojego kodu (rzeczywista informacja jest zastrzeżona):

 <endpoint address="http://localhost/SomeService.svc" 
      binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ISomeService" 
      contract="SomeService.ICoreService" name="BasicHttpBinding_ISomeService" /> 

Oto odbioru MSDN na jej temat (jak w nie specjalnie go rozwiązać).

Microsoft's incomplete MSDN Entry

Oczywiście Stackoverflow ma kilka pytań zawierających mecz ciąg dla „bindingConfiguration” ale żaden explicetely kieruję moje pytanie:

Most relative (I think) Stackoverflow question

jakieś pomysły na to, co to jest używane?

W trosce o uczenie się jestem gotów zrobić krzywdę i być w błędzie. Myślę, że ma coś wspólnego z uwierzytelnianiem lub bezpieczeństwem. Podczas inspekcji interfejsu nie dostrzegam niczego, co dotyczy tego.

Każda pomoc będzie świetna!

Cheers

Matt

Odpowiedz

14

W sekcji Wiązania można mieć wiele "konfiguracji" dla tego samego rodzaju wiązania (w przypadku, BasicHttpBinding). Konfiguracja wiązania wybiera spośród nich, którego użyć.

W sieci MSDN powinieneś spróbować znaleźć odniesienie dla <endpoint> (ponieważ bindingConfiguration is is attribute), która będzie zawierała definicję tego, co powinien zrobić atrybut.

W poniższym przykładzie usługa definiuje dwa punkty końcowe, oba używające basicHttpBinding. Jedna z nich jest wyświetlana ponad "normalnym" HTTP, druga jest wyświetlana przez HTTPS. Atrybut bindingconfiguration to ten, który mówi WCF, której konfiguracji użyć.

<system.serviceModel> 
    <bindings> 
     <basicHttpBinding> 
      <binding name="SimpleBasic"> 
       <security mode="None"/> 
      </binding> 
      <binding name="BasicOverHttps"> 
       <security mode="Transport"/> 
      </binding> 
     </basicHttpBinding> 
    </bindings> 
    <services> 
     <service name="MyNamespace.MyService"> 
      <endpoint address="ep" 
         binding="basicHttpBinding" 
         bindingConfiguration="SimpleBasic" 
         contract="MyNamespace.IService" /> 
      <endpoint address="secure" 
         binding="basicHttpBinding" 
         bindingConfiguration="BasicOverHttps" 
         contract="MyNamespace.IService" /> 
     </service> 
    </services> 
</system.serviceModel> 
+0

Twój przykład ma sens. Dziękuję za szybką odpowiedź. Zasadniczo masz dodatkowy xml konfigurujący określone powiązanie. Domniemanie domyślnego podstawowego HttpBinding nie było dokładnie tym, czego potrzebowało. Byłem w stanie zlokalizować kilka różnych wewnętrznych plików wewnątrz rozwiązania, ale nie w tym konkretnym projekcie usługi. Co mnie teraz interesuje, to czy konfiguracje tych powiązań mogą znajdować się w pliku konfiguracyjnym seprate? Nie mogłem znaleźć żadnych definicji dokładnie pasujących do nazwy mojej bindingConfiguration w pliku lub projektu naprawdę. Przewlekły kod? –

+1

Prawdopodobnie. Myślę, że jeśli masz (w IIS) plik web.config w katalogu, każdy web.config na podkatalogach odziedziczy konfigurację rodzica (nie wypróbowałem go), więc jeśli tak jest, to możliwe, że brakuje Konfiguracja pochodzi z jednej z konfiguracji nadrzędnych. Ale to prawdopodobnie tylko kiepska konfiguracja. – carlosfigueira

Powiązane problemy