web.config ASP.NET应用程序</system.transactions>中无法识别的元素<system.transactions>

时间:2015-03-18 15:02:48

标签: asp.net asp.net-mvc-4 web-config

我正在尝试在我的ASP.NET MVC 4应用程序的web.config中设置默认事务超时设置。我将以下内容放在

的结束标记和开头之间
<system.transactions>
    <defaultSettings timeout="00:05:00" />
 </system.transactions>

这在我的本地开发环境和我们的一个开发服务器上运行良好,但在测试服务器上,我收到一个黄色的死亡屏幕,其中有一个解析错误,表明该元素无法识别。

我应该在machine.config或applicationhost.config中查找哪些内容阻止设置被识别?

1 个答案:

答案 0 :(得分:0)

此参数必须在IIS的machine.config中定义。

  

路径:C:\ Windows \ Microsoft.NET \ Framework64 \ [您的框架版本] \ Config \

在那里你可以定义稍后将覆盖它的位置。 默认情况下,您无法在应用程序的web.config和此代码中覆盖此参数。

之后你应该阅读有关交易升级的内容 Transaction Management Escalation

它将取决于所使用的资源类型。 (在本地计算机上由共享内存,或在另一台计算机上与DB一起分发)。

我看到了不同的行为。当我使用两台服务器(SQLSERVER和IIS)时,System.Transactions被分级以分配事务,并在machine.config中定义的Timeout参数正常工作。但是当SQLSERVER和IIS在同一台机器上时 - 超时被淹没了,我无法理解为什么((在这种情况下,系统事务没有升级到分布式事务(我在sys.dm_tran_active_transactions中看到它),我预计超时将是10分钟(默认)。但这笔交易工作几个小时。

我想弄清楚。