调用StartCopyAsync时发生StackOverflow异常

时间:2017-12-26 16:12:37

标签: c# azure-storage-blobs

我正在编写一个控制台应用程序,它使用与此类似的代码生成给定blob的副本:

Destination host unreachable

该应用程序成功复制块blob,但在尝试复制页面blob时,它会因StackOverflow异常而崩溃。

我知道为什么我在复制页面blob时遇到StackOverflow异常而不是在复制块blob时出现这种情况?

编辑:我创建了一个简单的控制台应用程序来重现该问题。这是program.cs:

Destination host unreachable

这里是ConsoleApp1.csproj:

import { ErrorHandler, Injectable} from '@angular/core';
import { NgModule, ApplicationRef, ErrorHandler } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';

@Injectable()
export class CustomErrorHandler implements ErrorHandler {
  constructor() { }
  handleError(err) {
     // implement your custom logic here
     throw err;
  }  
}

@NgModule({
  declarations: [AppComponent],
  imports: [BrowserModule],
  bootstrap: [AppComponent],
  providers: [
    {
      provide: ErrorHandler, 
      useClass: CustomErrorHandler 
    }
  ]
})

export class AppModule { }

这是我运行此控制台应用程序时的结果: enter image description here

Visual Studio中的输出窗口显示以下内容:

  

类型'System.StackOverflowException'的未处理异常   发生在Microsoft.WindowsAzure.Storage.dll

2 个答案:

答案 0 :(得分:2)

似乎是Azure storage SDK问题。我也可以使用 WindowsAzure.Storage版本> = 8.2.0来重现它。

如果可以降级Azure存储SDK版本,请使用Azure SDK version 8.1.4,然后它将按预期工作。

答案 1 :(得分:1)

我收到了我昨晚开通的GitHub issue微软人员的回复:他们承认此问题是Azure Storage SDK中的回归错误。

在我们等待问题得到解决的同时,他们建议使用StartCopyAsync方法的不同重载来解决问题。但是,正如@ tom-sun建议的那样,我可以降级到早期版本的SDK。