2013-08-14 31 views
13

Tôi gặp phải lỗi này khi cố gắng điều hướng đến tệp .svc của mình. Có vẻ như nó không tìm thấy basicHttpsBinding của tôi; đây là rằng phần của web.config của tôi:Mở rộng ràng buộc cấu hình 'system.serviceModel/bindings/basicHttpsBinding' không thể tìm thấy

<system.serviceModel> 
<behaviors> 
    <serviceBehaviors> 
    <behavior> 
     <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/> 
     <serviceDebug includeExceptionDetailInFaults="true"/> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
<protocolMapping> 
    <add binding="basicHttpsBinding" scheme="https"/> 
</protocolMapping> 
<serviceHostingEnvironment aspNetCompatibilityEnabled="false" multipleSiteBindingsEnabled="true"/> 

tôi đã cố gắng tìm kiếm thông qua Google nhưng bất kỳ câu trả lời tôi có thể tìm dường như không áp dụng đối với những gì tôi đang làm gì ở đây. Hầu hết những gì tôi tìm thấy nói về các ràng buộc tùy chỉnh, trong đó tôi không nghĩ rằng tôi có bất kỳ. Tôi thành thật thậm chí không chắc chắn những gì có thể gây ra lỗi này, vì vậy bất kỳ trợ giúp sẽ được đánh giá rất nhiều. Nếu bạn cần thêm thông tin, hãy cho tôi biết và tôi sẽ thêm nó.

+1

Tôi đang gặp vấn đề tương tự. Bất kì sự trợ giúp nào đều được đánh giá cao! – SageMage

+1

Bạn sử dụng phiên bản .NET nào? BasicHttpsBinding yêu cầu .NET 4.5 – slfan

+1

@slfan Chúng tôi đang sử dụng .Net 4.0; những gì bạn sẽ đề nghị tôi làm gì? Tôi chỉ cần loại bỏ phần lập bản đồ giao thức đó? –

Trả lời

14

BasicHttpsBinding là một ràng buộc mới trong .NET 4.5, do đó bạn không thể sử dụng nó trong ứng dụng 4.0. Bạn xóa giao thức ánh xạ hoặc bạn sử dụng một ràng buộc khác như basicHttpBinding hoặc wsHttpBinding.

Khi bạn định cấu hình SSL trong IIS, điều này cũng sẽ hoạt động.

+0

Vì vậy, bạn có nói rằng bạn chỉ cần bsicHttpBinding và ssl sẽ vẫn hoạt động? – PositiveGuy

+1

@CoffeeThêm hai ràng buộc rất giống nhau. Xem chủ đề này http://stackoverflow.com/questions/14874529/what-is-the-difference-between-basichttpsbinding-and-wshttpbinding-with-transpor để hiểu sự khác biệt – slfan

9

Nếu bạn có một kịch bản tương tự như tôi nơi Studio tạo Web.config có trực quan các configs sau:

<system.web> 
    <compilation debug="true" targetFramework="4.5" /> 
    <pages controlRenderingCompatibilityVersion="4.0" /> 
    </system.web> 

... thêm <httpRuntime targetFramework="4.5" />

Vì vậy, bây giờ bạn có

<system.web> 
    <compilation debug="true" targetFramework="4.5" /> 
    <pages controlRenderingCompatibilityVersion="4.0" /> 
    <httpRuntime targetFramework="4.5" /> 
    </system.web> 

Tôi cũng đã xóa <pages controlRenderingCompatibilityVersion="4.0" /> mà không ảnh hưởng đến tình huống của mình.

+1

Câu trả lời này phù hợp cho ứng dụng .Net 4.5. Nó không rõ ràng tại sao cần phải làm điều này, vì chúng ta đã nói targetFramework = "4.5", nhưng nó thực sự có vẻ là trường hợp các phần cấu hình vẫn sẽ mặc định là 4.0 unles, chúng ta thiết lập phiên bản đích ở đây cũng như trong ' '. –

0

Xóa protocolMapping phần từ web.config và nó sẽ hoạt động.

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