C# winform应用程序不能从Machine.Config中获取maxTimeout值。
我一直在使用使用TransactionScope的Oracle 10G数据库的Winform应用程序,并想修改> maxTimeOut value machine.config 文件,我的 Machine. config 文件位于以下位置(我正在使用.NET 4用于此应用程序) C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config 最初没有为maxTimeOut指定任何内容,因此默认为10分钟.为了更改它,我添加了如下所示的maxTimeout="00:00:10"值:
0 2023-05-14
编程技术问答社区
TransactionScop-基础供应商在EnlistTransaction上失败。MSDTC被中止了
我们的团队的问题表现为: 基础提供商未能进行Entristransaction;无法访问 处置对象.对象名称:"事务". 我们一开始就开始使用堆栈的顶部被捕获为: 在 system.data.entityclient.entityConnection.enlistTransaction(事务交易) 在system.data.objects.objectContext.ensureconnection() system.data.objects.objectContext.executestorecommand(字符串命令文本,object []参数) 在 concecon.models.billlines.billlines.reconciliation.interfaces.ibilllineenties.executestorecommand(String,Object []) 在 coneconiation.models.legacy.entitydbenviro
0 2023-05-14
编程技术问答社区
NServiceBus:System.Transactions.TransactionException:合作伙伴事务管理器已禁用对远程/网络交易的支持
当我尝试将记录保存到iHandlemessages实现中的hander(t value)方法中时,我会在我的 subscriber 上获得此例外.有人知道为什么会发生吗?我想我记得Nservicebus使用分布式交易来处理消息交易,但是我不知道为什么在这两个机器上运行" runmefirst.bat"文件后它不仅"工作". > . 有什么想法? 解决方案 找到了答案.看来我需要在MSDTC安全设置下启用"允许入站"选项.有人知道为什么runmeFirst.bat不设置这个吗? 其他解决方案 问题是(正如@skb所说)的MSDTC安全设置,您可以找到有关如何在此MSDN论坛响应中设置此权限的详细说明:
10 2023-04-28
编程技术问答社区
nhibernate和transactionscope交易自发地中止了。
我正在大型应用程序中使用Nhibernate和Transactionscope. 该应用程序应该修改3个数据库,并支持它们之间的分布交易. 这是我每次要查询或在分布式事务中的数据库上执行某些SQL时调用的代码: IDbConnection connection = new SqlConnection(connectionString); connection.Open(); ISession session = SessionFactory.OpenSession(connection); ,这是在执行必要操作后每当指定的代码 IDbConnection sqlConnection = session.Connection; if (sqlConnection != null && sqlConnection.State == ConnectionState.Open) sqlConnection.Close(); session.Dispose(); 当我执
0 2023-04-23
编程技术问答社区
.NET TransactionScope和MSDTC
在我的代码中,有要处理的交易: using (var scope = new TransactionScope()) { repo1.SaveSomething(); repo2.SaveAnythingElse(); scope.Complete(); } repo1和repo2函数在使用并处置自己的DB上下文,并将其处理,这些交易像魅力一样工作. 现在,我添加了其他类似的代码,并且开始删除例外: 基础提供商未能开放. (ENTITYFRAMEWORK)网络 分布式事务管理器(MSDTC)的访问已被禁用. 请在安全配置中启用DTC以供网络访问 MSDTC使用组件服务管理工具. (System.Transactions)交易管理器已禁用其支持 对于远程/网络交易. 我读到,尽管具有相同的SQL Server相同的DB,但在交易中打开连接时 - 它需要MSDTC组件来处理它.我将代码更改为以下: using (var scope = new T
8 2023-04-19
编程技术问答社区
在线程环境中,分布式事务在多个连接到同一个数据库时是如何表现的?
我正在尝试确定分布式事务中多个数据库连接的行为. 我有一个漫长的运行过程,该过程催生了一系列线程,然后每个线程负责管理其DB连接等.所有这些都在交易范围内部运行,每个线程都通过A DependentTransaction对象入伍. 当我同时将此过程并行放置时,我遇到了一些问题,即似乎有某种块阻止查询同时执行交易. 我想知道的是交易协调员如何处理从多个连接到同一db的查询,并且是否建议通过线程传递连接对象? 我已经读到,MS SQL仅允许每个事务连接一个连接,但我显然能够在同一交易中创建并初始化一个与同一DB的连接.在打开连接时,我根本无法在没有"另一个会话中使用的事务上下文"的情况下并行执行线程.结果是连接必须等待执行而不是同时运行,最后代码运行到完成,但是由于此锁定问题,该应用程序没有净收益. . 代码看起来像这样. Sub StartThreads() Using Scope As New TransactionScope
12 2023-04-06
编程技术问答社区
用于Windows服务器事务/错误处理的服务总线1.0
我敢肯定我不是第一个这样说的人,但是在那里的Windows Server较小的服务总线1.0上严重缺乏文档...我希望有些MS Insiders可以帮助清除一些事情... 使用队列/主题的服务是否在隐式,环境交易中运行?例如,考虑以下代码段: [ServiceBehavior] public class MySbService : IDoWork { [OperationBehavior] void DoSomeWork(WorkRequest request) { DoDatabaseWork(); DoMoreDatabaseWork(); } } 在上面的样本中,如果DoMoreDatabaseWork()引发异常,则不会创建明确的TransactionScope> DoDatabaseWork()?换句话说,排队操作是否在MSDTC跟踪的环境交易中运行? 是否运行 如果抛出异常(像MSMQ一
2 2023-04-04
编程技术问答社区
使用MSMQ和SQL Server的分布式事务,但有时会出现脏读的情况
我们的SQL Server 2014数据库设置为READ_COMMITTED_SNAPSHOT. 我们使用MSMQ和分布式交易(我们使用MassTransit 2.10) 在系统的一个部分中,我们从队列中读取一条消息,进行数据库更新,然后向队列发布新消息(全部在单个事务下). 我们发现了一种情况,即处理下一个消息时似乎不进行更新(从同一表读取第一部分更新),即使我希望该消息仅在排队中同时,数据库已更新.当我们稍后查询表时,将按预期进行更新的数据.这似乎只有在我们的负载高且很少时才会发生. 我们代码的简化版本 // code that processes message 1 using (var scope = new TransactionScope(TransactionScopeOption.RequiresNew, new TransactionOptions() { Timeout = TimeSpan.FromMinutes(30), Isolat
2 2023-04-04
编程技术问答社区
在现有的SqlConnection中打开一个DbContext连接
如果在现有ado.net SqlConnection中打开实体框架的DbContext连接,我有兴趣,只要它们都使用相同的连接字符串,即在完全相同的数据库上操作? 例如: using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, new System.TimeSpan(0, 30, 0))) { using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); DoStuffWithEF(connectionString); ... } } void DoStuffWithEF(string connectionString) { using (var context
6 2023-03-28
编程技术问答社区
我是否正确使用了TransactionScope和DataContext?
如果我启动一些数据台面,读取一些数据,然后仅包装themitchanges? string conn1 = GetConn1(); string conn2 = GetConn2(); using (DataContext1 dc1 = new DataContext1(conn1)) { List customers = ReadSomeData(dc1); ModifySomeCustomers(customers); //performs local modification to Customer instances using (DataContext2 dc2 = new DataContext2(conn2)) { List orders = ReadSomeData(dc2); ModifySomeOrders(orders); //performs local modification to O
2 2023-03-07
编程技术问答社区
针对Sql Server 2000的TransactionScope错误--合作伙伴的交易管理器已禁用其对远程/网络交易的支持
我试图针对我的SQL 2000数据库为LINQ-TO-SQL操作设置一个简单的交易.使用TransactionsCope,看起来像这样: using (TransactionScope transaction = new TransactionScope()) { try { Store.DBDataContext dc = new Store.DBDataContext(); Store.Product product = GetProduct("foo"); dc.InsertOnSubmit(product); dc.SubmitChanges(); transaction.Complete(); } catch (Exception ex) { throw ex; } } 但是,我不断收到
4 2023-03-07
编程技术问答社区
服务器上的MSDTC '服务器不可用'。
我在SQL Server上遇到了这个奇怪的错误.我找不到旧帖子中的解决方案. 我有此过程: create proc _upJM_SyncAll_test as begin DECLARE @SQLString nvarchar(max) set @SQLString = N' DELETE FROM OPENQUERY([LOCAL_MYSQL],''SELECT acSubject FROM _utjm_setitemprices'') where acSubject not in (select acSubject from _uvJM_SetSubj) DELETE FROM OPENQUERY([LOCAL_MYSQL],''SELECT acSubject FROM _utjm_setsubj'') where acSubject not in (select acSubject from _uvJM_SetSubj) update a set acNa
16 2023-03-05
编程技术问答社区
当处置时,TransactionScope会抛出TransactionAbortedException。
我有以下方案: 父进程启动TransactionsCope,使用TransAction Interop.getTransmitterPropagationToken创建了识别事务的令牌,将数据插入数据库. TransactionsCope完成. 使用上述令牌它创建事务,然后将其用于创建TransactionsCope.此过程还将数据插入数据库. TransactionsCope完成并处置. 在这一点上,父过程试图处理其TransactionsCope,并投入TransactionBortedException.例外没有任何理由无法提交. 堆栈跟踪: at System.Transactions.TransactionStatePromotedAborted.BeginCommit(InternalTransaction tx, Boolean asyncCommit, AsyncCallback asyncCallback, Object asyncState) a
6 2023-02-21
编程技术问答社区
使用跨流程的交易
我正在尝试使用system.transactions(transactionscope)协调一组过程,每个过程都可以进行一些数据库工作.最终,所有流程都需要通过一个父进程进行作业或原子卷回去.不幸的是,到目前为止,我没有尝试过任何事情. 我的基本策略是在父进程中进行thressactionscope,将其保存到文件中,并调用子进程,该过程加载文件,使用其自身的TransactionsCope中的事务并返回父母. . . 但这对我不起作用.当我从打电话给第一个孩子时回来时,有时我会看到父母交易已被标记为中止.尝试克隆它,然后抛出TransactionBortedException. 我还看到了第二个孩子试图进行交易的例外,我获得了代码0x8004d00e的TransActionException. 我正在尝试做 transactionscope跨应用程序和过程,,,和这是我尝试过的一些事情,没有成功: 通过加载交易中的子进程中的依赖性克隆()创建依赖性传播
18 2023-02-17
编程技术问答社区
交易过程中出现MSDTC异常。C#
我在C#应用程序中的交易中获得了MSDTC异常.该功能是在从CSV文件中阅读后,将一十万(十万)邮政编码记录上传到数据库表中.此操作是在大约20个批处理数据库操作中完成的(每个包含5000个记录).如果我不使用交易,功能正常. 有趣的部分是使用交易的其他功能能够完成其交易.这使我假设异常消息是一种误导性. 关于问题可能是什么的想法? 例外:"分布式事务管理器(MSDTC)的网络访问已被禁用.请使用组件服务管理工具启用DTC以在MSDTC的安全配置中进行网络访问." 来源:System.Transactions 内部异常:"事务管理器已禁用对远程/网络交易的支持. (Hresult的例外:0x8004D024)" 注意:交易内部有一个循环.它会引起任何问题吗? 实际要求是:ZipCode表中有一些现有的Zipcodes.管理员每个月都会上传新的ZipCode CSV文件.插入CSV的新项目. CSV中不可用的ZipCodes(但存在于数据库中)被认
12 2023-02-17
编程技术问答社区
使用TransactionScope的间歇性System.ArgumentNullException
我有一个Windows Service应用程序,该应用程序正在执行对SQL Server的一些调用.我有一个特定的工作要做,其中涉及将一行保存到Message表格,并在Buffer表中更新多行. 我已经将这两个SQL语句包装到a TransactionScope中,以确保它们既要承诺又不承诺. 高级代码看起来像这样: public static void Save(Message message) { using (var transactionScope = new TransactionScope()) { MessageData.Save(message.TransactionType, message.Version, message.CaseNumber, message.Rout
100 2023-02-17
编程技术问答社区
SqlConnection和避免晋升为MSDTC
当我们需要在应用程序中进行数据库访问时,我们会使用以下模式: 对于查询,我们有一个带有方法CreateOpenConnection的静态工厂类,它无非是new SqlConnection(myConnectionString),并在其上调用Open().在我们进行查询之前,该方法被调用,并且在查询返回后处理连接. 对于插入/更新/删除,我们使用一个工作模式单位,将更改批处理并提交到数据库中,并呼叫work.Commit() so: work.commit: using (var tranScope = new TransactionScope(TransactionScopeOption.RequiresNew)) { using (var conn = DapperFactory.CreateOpenConnection()) { var count = _changeTracker.CommitChanges(conn);
16 2023-02-14
编程技术问答社区
ADO实体框架是否支持非DTC交易?在一个EntityContext和一个TransactionScope内的多个查询会导致DTC推广
我有一个使用实体框架的Web应用程序 - 我们使用TransactionsCope类提供环境交易. 有什么方法可以告诉EF优先使用标准的T-SQL交易?我们经常向一个实体内部和一个transactionscope实例内的不同表进行许多查询,但是这似乎总是将交易促进到DTC 我举了一个简短的例子,请参见下文.对单个表的查询正确启动了T-SQL事务,并在连接蜘蛛线54上 然后对接触表进行查询,并在其他连接(Spid 53)上执行此操作,该连接具有将交易促进到DTC事务的影响.** using (MyEntities DB = new MyEntities()) { using (TransactionScope t = new TransactionScope()) { DB.Individual.First().EmailAddress = "bob" + DateTime.Now.Second.ToString() + "@bob.com
8 2023-02-13
编程技术问答社区
没有DTC的TransactionScope替代品
是否有任何替代transactionscope的选择,不需要启用DTC ?? 在交易中,我需要进行两个操作: 创建一个用户(使用会员资格-SQL成员提供者) 做一个插入操作. 解决方案 TransactionsCope使用.NET中的LTM-轻型事务管理器.只有当您在同一交易中打开多个连接或在数据库之间进行的连接,应transactionscope将交易促进基于2PC的TX-Anager,DTC. . 对于MS SQL Server 2008及更高版本,DTC只有在与不同的 dbs打开连接时才涉及.或者,如果您要从多个线程打开相同交易中的连接 作为一个副点:我在 castle.transactions.transactions . 侧点#2:如果您使用TransactionsCope,请确保明确声明隔离级别,否则您将序列化所有交易(iNCLATIONLEVEL.SERIALIZABLE)! 其他解决方案 在会员的连接字符串中添加Enlist=fa
18 2023-02-11
编程技术问答社区
分布式交易:.NET框架vs.NET核心
我有以下代码示例: static void Main(string[] args) { TransactionManager.DistributedTransactionStarted += (sender, eventArgs) => { Console.WriteLine("Promoted to distributed transaction!"); }; ​ const string connectionString = @"Server=localhost\SQLEXPRESS;Database=master;Integrated Security=true;"; ​ using (var tx = new TransactionScope()) using (var conn1 = new SqlConnection(connectionString)) using (var conn2 = new
14 2023-02-11
编程技术问答社区