Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 获取异常,如处理后使用的对象,上载到Amazon.S3时为空引用_Amazon S3_Mono_Xamarin_Xamarin.android_Aws Sdk - Fatal编程技术网

Amazon s3 获取异常,如处理后使用的对象,上载到Amazon.S3时为空引用

Amazon s3 获取异常,如处理后使用的对象,上载到Amazon.S3时为空引用,amazon-s3,mono,xamarin,xamarin.android,aws-sdk,Amazon S3,Mono,Xamarin,Xamarin.android,Aws Sdk,我有一个代码,可以读取流中的文件并将其上传到AmazonS3。我在Monotouch上使用了Amazon.NETSDK,在Android上使用了Mono,这两个版本的内部版本是Amazon SDK AssemblyVersion(“1.5.2.1”) 这很好用 但有时在上载时会引发以下异常: Message = The object was used after being disposed.; StackTrace = at System.Net.WebConnection.BeginW

我有一个代码,可以读取流中的文件并将其上传到AmazonS3。我在Monotouch上使用了Amazon.NETSDK,在Android上使用了Mono,这两个版本的内部版本是Amazon SDK AssemblyVersion(“1.5.2.1”) 这很好用

但有时在上载时会引发以下异常:

Message = The object was used after being disposed.; 
StackTrace =   at System.Net.WebConnection.BeginWrite (System.Net.HttpWebRequest request, System.Byte[] buffer, Int32 offset, Int32 size, System.AsyncCallback cb, System.Object state) [0x00000] in <filename unknown>:0 
at System.Net.WebConnectionStream.BeginWrite (System.Byte[] buffer, Int32 offset, Int32 size, System.AsyncCallback cb, System.Object state) [0x00000] in <filename unknown>:0 

Message = Object reference not set to an instance of an object; 
StackTrace =   at System.ServiceModel.Dispatcher.BaseMessagesFormatter.DeserializeReply (System.ServiceModel.Channels.Message message, System.Object[] parameters) [0x00000] in <filename unknown>:0 
at System.ServiceModel.MonoInternal.ClientRuntimeChannel.Request (System.ServiceModel.Description.OperationDescription od, System.Object[] parameters) [0x00000] in <filename unknown>:0 
at System.ServiceModel.MonoInternal.ClientRuntimeChannel.DoProcess (System.Reflection.MethodBase method, System.String operationName, System.Object[] parameters) [0x00000] in <filename unknown>:0 
at System.ServiceModel.MonoInternal.ClientRuntimeChannel.Process (System.Reflection.MethodBase method, System.String operationName, System.Object[] parameters) [0x00000] in <filename unknown>:0 
Message=对象在被释放后被使用。;
StackTrace=at System.Net.WebConnection.BeginWrite(System.Net.HttpWebRequest请求,System.Byte[]缓冲区,Int32偏移量,Int32大小,System.AsyncCallback cb,System.Object状态)[0x00000]in:0
在System.Net.WebConnectionStream.BeginWrite(System.Byte[]缓冲区、Int32偏移量、Int32大小、System.AsyncCallback cb、System.Object状态)[0x00000]中:0
消息=对象引用未设置为对象的实例;
StackTrace=at System.ServiceModel.Dispatcher.BaseMessagesFormatter.DeserializeReply(System.ServiceModel.Channels.Message消息,System.Object[]参数)[0x00000]位于:0
在System.ServiceModel.MonoInternal.ClientRuntimeChannel.Request(System.ServiceModel.Description.OperationDescription od,System.Object[]参数)[0x00000]中:0
在System.ServiceModel.MonoInternal.ClientRuntimeChannel.DoProcess(System.Reflection.MethodBase方法,System.String操作名,System.Object[]参数)[0x00000]中:0
0中的System.ServiceModel.MonoInternal.ClientRuntimeChannel.Process(System.Reflection.MethodBase方法、System.String操作名、System.Object[]参数)[0x00000]处
我并没有在代码中的任何地方为上传的文件流设置file stream=null或dispose

发现类似的问题进行了解释

我得到异常的那一行,它试图将给定的流上传到s3

更详细的解释

还有一些堆栈跟踪:

--

使用HighLevelAPI上传;消息=对象引用未设置为对象的实例;
StackTrace=at System.Xml.XmlInputStream.Initialize(System.IO.Stream-Stream)[0x00000]in:0
在:0中的System.Xml.XmlInputStream..ctor(System.IO.Stream Stream)[0x00000]处
0中的System.Xml.XmlStreamReader..ctor(System.IO.Stream输入)[0x00000]处
0中的System.Xml.XmlTextReader..ctor(System.IO.Stream输入)[0x00000]处
在Amazon.S3.AmazonS3Client.transform(System.String responseBody,System.String actionName,System.Type t)[0x00000]中:0
在Amazon.S3.AmazonS3Client.processRequestError(System.String actionName、System.Net.HttpWebRequest request、System.Net.WebException we、System.Net.HttpWebResponse errorResponse、System.String requestAddr、System.Net.WebHeaderCollection&respHdrs、System.Type t、System.Exception&cause)[0x00000]in:0
在Amazon.S3.AmazonS3Client.handleHttpWebErrorResponse(Amazon.S3.Model.S3Request userRequest,System.Net.WebException we,System.Net.HttpWebRequest request,System.Net.HttpWebResponse httpResponse,System.Exception&cause,System.Net.HttpStatusCode&statusCode)[0x00000]中:0
在Amazon.S3.AmazonS3Client.getResponseCallback[PutObjectResponse](IAsyncResult结果)[0x00000]中:0
--

使用HighLevelAPI上传;消息=错误:SendFailure(写入标题时出错);
StackTrace=at System.Net.HttpWebRequest.EndGetRequestStream(IAsyncResult asyncResult)[0x00000]位于:0
位于:0中的System.Net.HttpWebRequest.GetRequestStream()[0x00000]处
在:0中的Amazon.S3.AmazonS3Client.getRequestStreamCallback[PutObjectResponse](IAsyncResult结果)[0x00000]处
UploadUsingHighLevelAPI; Message = Object reference not set to an instance of an object; 
StackTrace =   at System.Xml.XmlInputStream.Initialize (System.IO.Stream stream) [0x00000] in <filename unknown>:0 
  at System.Xml.XmlInputStream..ctor (System.IO.Stream stream) [0x00000] in <filename unknown>:0 
  at System.Xml.XmlStreamReader..ctor (System.IO.Stream input) [0x00000] in <filename unknown>:0 
  at System.Xml.XmlTextReader..ctor (System.IO.Stream input) [0x00000] in <filename unknown>:0 
  at Amazon.S3.AmazonS3Client.transform (System.String responseBody, System.String actionName, System.Type t) [0x00000] in <filename unknown>:0 
  at Amazon.S3.AmazonS3Client.processRequestError (System.String actionName, System.Net.HttpWebRequest request, System.Net.WebException we, System.Net.HttpWebResponse errorResponse, System.String requestAddr, System.Net.WebHeaderCollection& respHdrs, System.Type t, System.Exception& cause) [0x00000] in <filename unknown>:0 
  at Amazon.S3.AmazonS3Client.handleHttpWebErrorResponse (Amazon.S3.Model.S3Request userRequest, System.Net.WebException we, System.Net.HttpWebRequest request, System.Net.HttpWebResponse httpResponse, System.Exception& cause, System.Net.HttpStatusCode& statusCode) [0x00000] in <filename unknown>:0 
  at Amazon.S3.AmazonS3Client.getResponseCallback[PutObjectResponse] (IAsyncResult result) [0x00000] in <filename unknown>:0 
UploadUsingHighLevelAPI; Message = Error: SendFailure (Error writing headers); 
StackTrace =   at System.Net.HttpWebRequest.EndGetRequestStream (IAsyncResult asyncResult) [0x00000] in <filename unknown>:0 
      at System.Net.HttpWebRequest.GetRequestStream () [0x00000] in <filename unknown>:0 
      at Amazon.S3.AmazonS3Client.getRequestStreamCallback[PutObjectResponse] (IAsyncResult result) [0x00000] in <filename unknown>:0