SqlBulkCopy.WriteToServer() keep getting “connection is closed”

前端 未结 3 1491
野性不改
野性不改 2021-01-22 07:44

This makes no sense to me but maybe someone with keener eyes can spot the problem.

I have a Windows service that uses FileSystemWatcher. It processes some files and upl

3条回答
  •  盖世英雄少女心
    2021-01-22 07:52

    This looks to me to be a bug in the SqlBulkCopy implementation. If you run a (large) number of bulk copies in parallel in separate tasks concurrently, disable your network connection and then trigger a full garbage collection, you will reliably get this exception thrown on the GC's finalizer thread. It is completely unavoidable.

    That shouldn't happen because you are continuing the WriteToServerAsync task and handling the fault. But in the implementation, on error they start a new task that they don't continue or await.

    This still seems to be a bug in .NET 4.6.2.

    The only fix I can see is to subscribe to TaskScheduler.UnobservedTaskException and look for something in the stacktrace that identifies the issue. That isn't a fix by the way, it is a hack.

提交回复
热议问题