Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.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
.net 是否可以进行仍允许只读请求的事务?_.net_.net 4.0_Transactions_Transactionscope - Fatal编程技术网

.net 是否可以进行仍允许只读请求的事务?

.net 是否可以进行仍允许只读请求的事务?,.net,.net-4.0,transactions,transactionscope,.net,.net 4.0,Transactions,Transactionscope,我现在有一个批处理过程,它可能需要一个小时才能运行。它不是数据库密集型的,只是它需要做很多事情,比如web调用 我有一个围绕整个事情的事务,所以如果出现任何问题,我将回滚 是否可以使此事务只阻止写入数据库而不是只读的请求?若否,原因为何?这只是数据库的自然限制吗 我在.net 4.0中,正在使用TransactionScope执行此任务。不要这样做。加载到暂存表中。操作完成后,将其大容量传输到实际表中。通常,这样的操作根本不会成功;默认情况下,大多数资源管理器不会让事务持续那么长时间,如果他们这

我现在有一个批处理过程,它可能需要一个小时才能运行。它不是数据库密集型的,只是它需要做很多事情,比如web调用

我有一个围绕整个事情的事务,所以如果出现任何问题,我将回滚

是否可以使此事务只阻止写入数据库而不是只读的请求?若否,原因为何?这只是数据库的自然限制吗


我在.net 4.0中,正在使用
TransactionScope
执行此任务。

不要这样做。加载到暂存表中。操作完成后,将其大容量传输到实际表中。

通常,这样的操作根本不会成功;默认情况下,大多数资源管理器不会让事务持续那么长时间,如果他们这样做(如果涉及多个资源管理器),则根据正在更新/修改的数据量,提交事务的操作可能需要很长时间

如果您只是想在处理过程中阻止数据库访问,那么最好在数据库中设置一个标志,如果设置了该标志,那么应用程序中的其他功能就会失败


应用程序的范围可能会影响标记的存储位置;如果只有一个实例在运行,则可以将标志存储在内存中,但如果有多个实例,则可能每次都必须检查数据库。

一个小时的事务?我理解对了吗?是的。。。期间无法访问数据库。这真的是个坏主意吗?这是个糟糕的主意。加载到暂存表中,然后将其大容量传输。