2011-08-12 26 views
5

Vì vậy, tôi đang làm việc với cấu hình điểm cuối cho dịch vụ WCF. Tôi hầu như không có kinh nghiệm với các dịch vụ như một tổng thể, nhưng đã được plopped ở giữa của một dự án sử dụng chúng. Tôi gần như hiểu được những gì mỗi thuộc tính trong điểm cuối đang làm ngoại trừ một. "bindingConfiguration".Thuộc tính bindingConfiguration chịu trách nhiệm trong cấu hình điểm cuối BasicHttpBinding là gì?

Dưới đây là một phiên bản che khuất của mã của tôi (thông tin thực tế là độc quyền):

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

Dưới đây là MSDN hãy vào nó (như trong họ không đặc biệt giải quyết nó).

Microsoft's incomplete MSDN Entry

Tất nhiên Stackoverflow có một vài câu hỏi có chứa một trận đấu chuỗi cho "bindingConfiguration" nhưng không ai explicetely giải quyết câu hỏi của tôi:

Most relative (I think) Stackoverflow question

Bất kỳ ý tưởng về điều này được sử dụng cho?

Vì lợi ích của việc học, tôi sẵn sàng chấp nhận và bị sai ở đây. Tôi nghĩ rằng nó có cái gì đó để xác thực hoặc bảo mật. Về kiểm tra giao diện, tôi cũng không nhận thấy gì liên quan đến điều này.

Mọi trợ giúp sẽ tuyệt vời!

Cheers

Matt

Trả lời

14

Trong phần cam kết ràng buộc, bạn có thể có nhiều "cấu hình" cho các loại ràng buộc giống nhau (trong trường hợp của bạn, basicHttpBinding). Cấu hình ràng buộc chọn trong số đó một cái để sử dụng.

Trong MSDN, bạn nên cố gắng tìm tham chiếu cho <endpoint> (vì bindingConfiguration là thuộc tính), sẽ có định nghĩa về thuộc tính được cho là phải làm gì.

Trong ví dụ bên dưới, dịch vụ xác định hai điểm cuối, cả hai đều sử dụng basicHttpBinding. Một trong số chúng được hiển thị trên HTTP "bình thường", cái còn lại được hiển thị trên HTTPS. Thuộc tính bindingconfiguration là thuộc tính cho WCF biết cấu hình nào cần sử dụng.

<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

Ví dụ của bạn có ý nghĩa hoàn hảo. Cảm ơn bạn vì hồi ứng nhanh chóng. Vì vậy, về cơ bản bạn có xml bổ sung cấu hình ràng buộc bạn chỉ định. Ngụ ý mặc định basicHttpBinding không chính xác những gì nó cần. Tôi đã có thể xác định vị trí một số bên trong các tệp khác nhau bên trong giải pháp, nhưng không thể trong dự án dịch vụ cụ thể đó. Những gì tôi tò mò về bây giờ là có thể cấu hình cho các bindings được đặt trong một tập tin cấu hình seprate? Tôi đã không thể tìm thấy bất kỳ định nghĩa chính xác phù hợp với tên của bindingConfiguration của tôi trong tập tin, hoặc dự án thực sự. Mã ngôn ngữ? –

+1

Có thể. Tôi nghĩ rằng nếu bạn có (trong IIS) một web.config trong một thư mục, bất kỳ web.config trên thư mục con sẽ kế thừa cấu hình của phụ huynh (tôi đã không thử nó), vì vậy nếu đây là trường hợp nó có thể là thiếu cấu hình từ một trong các cấu hình gốc. Nhưng nó có khả năng đó chỉ là một số cấu hình xấu. – carlosfigueira

Các vấn đề liên quan