Dịch vụ WCF của tôi có một OperationContract chấp nhận, như một tham số, một mảng đối tượng. Điều này có khả năng khá lớn. Sau khi tìm kiếm các bản sửa lỗi cho Yêu cầu không hợp lệ: 400, tôi đã tìm ra lý do thực sự: kích thước thư tối đa.Dung lượng kích thước thư tối đa cho thư đến (65536) đã vượt quá
Tôi biết câu hỏi này đã được hỏi trước ở nhiều nơi. Tôi đã thử những gì mọi người nói: "Tăng kích thước trong các tập tin cấu hình máy khách và máy chủ." Tôi có. Nó vẫn không hoạt động. web.config
Dịch vụ của tôi:
<system.serviceModel>
<services>
<service name="myService">
<endpoint name="myEndpoint" address=""
binding="basicHttpBinding"
bindingConfiguration="myBinding"
contract="Meisel.WCF.PDFDocs.IPDFDocsService" />
</service>
</services>
<bindings>
<basicHttpBinding>
<binding name="myBinding"
closeTimeout="00:11:00"
openTimeout="00:11:00"
receiveTimeout="00:15:00"
sendTimeout="00:15:00"
maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647"
maxBufferPoolSize="2147483647"
transferMode="Buffered"
allowCookies="false"
bypassProxyOnLocal="false"
hostNameComparisonMode="StrongWildcard"
messageEncoding="Text"
textEncoding="utf-8"
useDefaultWebProxy="true">
<readerQuotas maxDepth="2147483647"
maxStringContentLength="2147483647"
maxArrayLength="2147483647"
maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647" />
<security mode="None" />
</binding>
</basicHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
<dataContractSerializer maxItemsInObjectGraph="2147483647" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
Khách hàng của app.config:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IPDFDocsService"
closeTimeout="00:11:00"
openTimeout="00:11:00"
receiveTimeout="00:10:00"
sendTimeout="00:11:00"
allowCookies="false"
bypassProxyOnLocal="false"
hostNameComparisonMode="StrongWildcard"
maxBufferSize="2147483647"
maxBufferPoolSize="2147483647"
maxReceivedMessageSize="2147483647"
messageEncoding="Text"
textEncoding="utf-8"
transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32"
maxStringContentLength="2147483647"
maxArrayLength="2147483647"
maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647" />
<security mode="None">
<transport clientCredentialType="None"
proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName"
algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:8451/PDFDocsService.svc"
behaviorConfiguration="MoreItemsInObjectGraph"
binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IPDFDocsService"
contract="PDFDocsService.IPDFDocsService"
name="BasicHttpBinding_IPDFDocsService" />
</client>
<behaviors>
<endpointBehaviors>
<behavior name="MoreItemsInObjectGraph">
<dataContractSerializer maxItemsInObjectGraph="2147483647" />
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
gì tôi có thể có thể bị thiếu hoặc làm sai? Nó giống như dịch vụ đang bỏ qua những gì tôi đã gõ trong maxReceivedBufferSize.
Cảm ơn trước, Kyle
CẬP NHẬT
Dưới đây là hai câu hỏi khác StackOverflow nơi họ không bao giờ nhận được một câu trả lời, hoặc là:
WCF MaxReceivedMessageSize property not taking
Có vẻ chính xác trong nháy mắt. Bạn có định cấu hình điểm kết thúc trong mã ở mọi nơi không? Nếu vậy, có thể sẽ ghi đè cài đặt cấu hình. –
Bạn lưu trữ dịch vụ như thế nào? IIS? –
@ Jeff: Tôi chỉ đang tạo một phiên bản mới của Dịch vụ khách hàng của tôi, sau đó gọi cho OperationContract, chuyển qua lớp tùy chỉnh của tôi làm tham số. Không có gì lạ mắt. @Simon: Tôi đang sử dụng Máy chủ phát triển ASP .NET. Hiện tại, tất cả đều là địa phương. – DaleyKD