Ich versuche, einige große Daten in Datenbank über einen WCF-Dienstaufruf zu speichern. Ich kann den Dienst nicht aufrufen. Es wirft einen Fehler:Fehler beim Zuweisen eines verwalteten Speicherpuffers von 268435456 Byte. Die Menge des verfügbaren Arbeitsspeichers ist möglicherweise niedrig
Fehler beim Zuweisen eines verwalteten Speicherpuffers von 268435456 Byte. Die Menge des verfügbaren Speichers kann gering sein
public async Task<int> UploadExportPackage(DTO.Upload.UploadPackage package)
{
int result = await serviceProxy.UploadResultsAsync(package);
return result;
}
Server-Seite config:
<!--
Place limits on the amount of data that can be received in one go.
This helps to protect the server from attack and abuse.
-->
<binding name="primaryBinding"
maxReceivedMessageSize="6000000"
maxBufferSize="6000000"
maxBufferPoolSize="12000000">
<readerQuotas maxArrayLength="6000000"
maxStringContentLength="6000000" />
<!--
Set the security mode. Apply at:
- Transport layer
- Message layer
-->
<security mode="TransportWithMessageCredential">
<message clientCredentialType="UserName" />
</security>
</binding>
</basicHttpsBinding>
</bindings>
Stapelüberwachung:
Exception no: 0
Nächste Ausnahme: Nachricht:
Fehler beim Zuweisen eines verwalteten Speicherpuffers von 268435456 Byte. Die Menge an verfügbarem Speicher kann niedrig sein.
Stapelüberwachung: Server-Stack-Trace: bei System.Runtime.Fx.AllocateByteArray (Int32 Größe) bei System.Runtime.InternalBufferManager.PooledBufferManager.TakeBuffer (Int32 buffer) bei System.ServiceModel.Channels.BufferManagerOutputStream. init (Int32 Urspr, Int32 maxSizeQuota, Int32 effectiveMaxSize, Bufferbuffer) bei System.ServiceModel.Channels.BufferedMessageWriter.WriteMessage (Message Nachricht, Bufferbuffer, Int32 initialOffset, Int32 maxSizeQuota) bei System.ServiceModel.Channels.TextMessageEncoderFactory.TextMessageEncoder. WriteMessage (Nachrichtennachricht, Int32 maxMessageSize, BufferManager-PufferManager, Int32 messageOffset).210 bei System.ServiceModel.Channels.HttpOutput.SerializeBufferedMessage (Message Nachricht, Boolean shouldRecycleBuffer) bei System.ServiceModel.Channels.HttpOutput.SendAsyncResult.SendWithoutChannelBindingToken() bei System.ServiceModel.Channels.HttpOutput.SendAsyncResult.Send() bei System.ServiceModel.Channels.HttpOutput.SendAsyncResult..ctor (httpOutput httpOutput, httpResponseMessage httpResponseMessage, Boolean suppressEntityBody, Timespan-Timeout, AsyncCallback Rückruf, Objektzustand) bei System.ServiceModel.Channels.HttpOutput.BeginSendCore (httpResponseMessage httpResponseMessage, Timespan-Timeout, AsyncCallback Rückruf, Objektstatus) bei System.ServiceModel.Channels.HttpChannelFactory 1.HttpRequestChannel.HttpChannelAsyncRequest.SendWebRequest() at System.ServiceModel.Channels.HttpChannelFactory
1.HttpRequestChannel.HttpChannelAsyncRequest.BeginSendRequest (Nachricht Nachricht, TimeSpan Timeout) bei System.ServiceModel.Channels.RequestChannel.BeginRequest (Message Nachricht, Timespan-Timeout, AsyncCallback Rückruf, Objektzustand) bei System.ServiceModel.Channels.SecurityChannelFactory 1.RequestChannelSendAsyncResult.BeginSendCore(IRequestChannel channel, Message message, TimeSpan timeout, AsyncCallback callback, Object state) at System.ServiceModel.Security.ApplySecurityAndSendAsyncResult
1.OnSecureOutgoingMessageComplete (Message-Nachricht) an System.ServiceModel.Security.ApplySecurityAndSendAsyncResult 1.Begin(Message message, SecurityProtocolCorrelationState correlationState) at System.ServiceModel.Channels.SecurityChannelFactory
1.SecurityRequestChannel.BeginRequest (Message Nachricht, Timespan-Timeout, AsyncCallback Rückruf, Objektzustand) bei System.ServiceModel.Dispatcher.RequestChannelBinder.BeginRequest (Message Nachricht, Timespan-Timeout, AsyncCallback Rückruf, Objektzustand) bei System.ServiceModel.Channels .ServiceChannel.SendAsyncResult.StartSend (Boolean completedSynchronously) bei System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.FinishEnsureOpen (IAsyncResult-Ergebnis, Boo Lean completedSynchronous) bei System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.StartEnsureOpen (Boolean completedSynchronously) bei System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.FinishEnsureInteractiveInit (IAsyncResult Ergebnis, Boolean completedSynchronously) bei System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.StartEnsureInteractiveInit() bei System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.Begin() bei System.ServiceModel.Channels.ServiceChannel. BeginCall (String-Aktion, boolesche Methode, ProxyOperationRuntime-Operation, Object [] ins, TimeSpan-Zeitlimit, AsyncCallback-Callback, Object asyncState) bei System.ServiceModel.Channels.ServiceChannel.BeginCall (Kanal ServiceChannel, Operation ProxyOperationRuntime, Object [] ins, AsyncCallback-Callback , Objekt asyncState) bei System.Threading.Tasks.TaskFactory 1.FromAsyncImpl[TArg1,TArg2,TArg3](Func
6 beginMethod, Func 2 endFunction, Action
1 endAction, TArg1 arg1, TArg2 arg2, TArg3 arg3, Objektzustand, TaskCreationOptions creationOptions) bei System.ServiceModel.Channels.ServiceChannelProxy.TaskCreator.CreateGenericTask [T] (ServiceChannel Kanal, ProxyOperationRuntime Betrieb Object [] Inputparameter) bei System.ServiceModel.Channels.ServiceChannelProxy.TaskCreator.CreateGenericTask (ServiceChannel Kanal, ProxyOperationRuntime Betrieb Object [ ] Inputparameter) bei System.ServiceModel.Channels.ServiceChannelProxy.TaskCreator.CreateTask (ServiceChannel Kanal, IMethodCallMessage method, ProxyOperationRuntime Betrieb) bei System.ServiceModel.Channels.ServiceChannelProxy.InvokeTaskService (IMethodCallMessage method, ProxyOperationRuntime Betrieb) bei System.ServiceModel. Channels.ServiceChannelProxy.Invoke (IMessage Nachricht)
Ausnahme r ethrown auf [0]: bei System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage (IMessage reqMsg, IMessage retMsg) bei System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke (Message & MsgData, Typ Int32) bei RossendaleClient8 .DAL.RR.IRossendaleService.UploadResultsAsync (UploadPackage Paket) bei RossendaleClient8.DAL.RR.RossendaleServiceClient.UploadResultsAsync (UploadPackage Paket) bei RossendaleClient8.DAL.RossendaleServiceClient.d__13.MoveNext()
Nächste Ausnahme: Nachricht:
Ausnahme vom Typ 'System.OutOfMemoryException' wa s geworfen.
Stapelüberwachung: bei System.Runtime.Fx.AllocateByteArray (Int32 Größe)
Möglicherweise müssen Sie Ihre Daten in kleinere Blöcke partitionieren und mehrere Sends an den Dienst senden. – Kevin
@Kevin gibt es keine Möglichkeit, die ganze Menge zu senden? Es ist nur etwa 200 MB – user1800674
Vielleicht Speicher zum Server hinzufügen. Glauben Sie nicht, dass dies das Problem wirklich beheben wird. Schiebt einfach so lange aus, bis es passiert. – Kevin