2012-04-01 30 views
11

Tôi cần thay đổi tệp web.config và thêm thuộc tính MaxReceivedMessageSize vào web.config của tôi - nhưng ở đâu?Nơi để đặt MaxReceivedMessageSize tài sản trong tập tin web.config WCF dịch vụ?

Dung lượng kích thước thư tối đa cho thư đến (65536) đã bị vượt quá. Để tăng hạn ngạch, hãy sử dụng thuộc tính MaxReceivedMessageSize trên phần tử ràng buộc phù hợp.

<?xml version="1.0"?> 
    <configuration> 
     <system.web> 
     <compilation debug="false"><assemblies><add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /></assemblies></compilation> 
     </system.web> 
     <system.serviceModel> 
     <behaviors> 
      <serviceBehaviors> 
      <behavior> 
       <serviceMetadata httpGetEnabled="true" /> 
       <serviceDebug includeExceptionDetailInFaults="false" /> 
      </behavior> 
      </serviceBehaviors> 
     </behaviors> 
     <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 
     </system.serviceModel> 
    <system.webServer> 
     <modules runAllManagedModulesForAllRequests="true" /> 
     </system.webServer> 
+0

Thông thường, nó được đặt trên phần tử ràng buộc. Mặc dù web.config của bạn cho thấy không có dấu hiệu của dịch vụ WCF nào –

+0

@DmitriyReznik: nhiều khả năng một dịch vụ WCF .NET 4 với các điểm cuối "mặc định" tiện dụng –

Trả lời

28

Bạn cần phải xác định một cấu hình bắt buộc đối với các ràng buộc bạn muốn sử dụng và sau đó bạn cần phải xác định dịch vụ của bạn (trên server-side) và khách hàng (về phía khách hàng) để sử dụng mà ràng buộc và cấu hình ràng buộc:

<system.serviceModel> 
    <bindings> 
     <!-- pick whichever binding you want .... --> 
     <basicHttpBinding> 
     <!-- binding configuration with a name --> 
     <binding name="ExtendedMaxSize" 
      maxBufferSize="999999" maxReceivedMessageSize="999999" /> 
     </basicHttpBinding> 
    </bindings> 
    <services> 
    <service name="Yournamespace.YourServiceClass" behaviorConfiguration="..."> 
     <!-- define endpoint with your binding and the name of the binding configuration 
      that you have defined just above --> 
     <endpoint address="" 
       binding="basicHttpBinding" 
       bindingConfiguration="ExtendedMaxSize" 
       contract="Yournamespace.IYourServiceContract" /> 
    </service> 
    </services> 
1

Để giúp những người có thể kết thúc ở đây như tôi đã làm. Tôi chưa thể thêm vào các nhận xét ở trên (Thông thường ai đó đã có câu trả lời trước khi tôi gặp sự cố), vì vậy tôi phải thêm câu trả lời.

Tôi có ứng dụng MVC 4 và tôi nghi ngờ mẫu ban đầu ở trên là từ web.config của dự án dịch vụ WCF thực tế. Một trong những ý kiến ​​đề cập đến họ nghi ngờ nó là một ứng dụng MVC 4 và các thiết lập cấu hình mặc định.

Nhưng cách khắc phục sự cố? Từ nghiên cứu thêm, có vẻ như sự thay đổi thực sự cần phải được thực hiện cho web.config cho CLIENT, nói cách khác, cấu hình web cho dự án với REFERENCE đối với dịch vụ WCF. Bạn sẽ thấy việc thay đổi ở đó dễ dàng hơn nhiều. Phiên bản web.config đó thực sự sẽ giống với những gì bạn đang tìm kiếm.

Điều đó làm việc dễ dàng đối với tôi và khắc phục sự cố của tôi.

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