我正在编写一个控制台应用程序,它使用与此类似的代码生成给定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 { }
Visual Studio中的输出窗口显示以下内容:
类型'System.StackOverflowException'的未处理异常 发生在Microsoft.WindowsAzure.Storage.dll
中
答案 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。