【问题标题】:1334 event ID app pool crashes1334 事件 ID 应用程序池崩溃
【发布时间】:2011-03-24 14:05:36
【问题描述】:

在运行 asp.net 应用程序时,会出现如下所示的间歇性错误

目前我们已经要求提供代码,但在此之前如果有可用的解决方案,那就太好了

有什么帮助吗?

Log Name:      Application
Source:        ASP.NET 2.0.50727.0
Date:          24-3-2011 11:45:25
Event ID:      1334
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      xxx
Description:
An unhandled exception occurred and the process was terminated.

Application ID: /LM/W3SVC/1/ROOT/WebClient

Process ID: 4808

Exception: System.ArgumentNullException

Message: Value cannot be null.

StackTrace:    at System.Threading.Monitor.Enter(Object obj)
   at System.Data.ProviderBase.DbConnectionPool.TransactedConnectionPool.TransactionEnded(Transaction transaction, DbConnectionInternal transactedObject)
   at System.Data.ProviderBase.DbConnectionPool.TransactionEnded(Transaction transaction, DbConnectionInternal transactedObject)
   at System.Data.ProviderBase.DbConnectionInternal.CleanupConnectionOnTransactionCompletion(Transaction transaction)
   at System.Data.ProviderBase.DbConnectionInternal.TransactionCompletedEvent(Object sender, TransactionEventArgs e)
   at System.Transactions.TransactionCompletedEventHandler.Invoke(Object sender, TransactionEventArgs e)
   at System.Transactions.InternalTransaction.FireCompletion()
   at System.Transactions.TransactionStatePromotedCommitted.EnterState(InternalTransaction tx)
   at System.Transactions.TransactionStatePromotedBase.ChangeStatePromotedCommitted(InternalTransaction tx)
   at System.Transactions.InternalTransaction.DistributedTransactionOutcome(InternalTransaction tx, TransactionStatus status)
   at System.Transactions.Oletx.RealOletxTransaction.FireOutcome(TransactionStatus statusArg)
   at System.Transactions.Oletx.OutcomeEnlistment.InvokeOutcomeFunction(TransactionStatus status)
   at System.Transactions.Oletx.OletxTransactionManager.ShimNotificationCallback(Object state, Boolean timeout)
   at System.Threading._ThreadPoolWaitOrTimerCallback.PerformWaitOrTimerCallback(Object state, Boolean timedOut)
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="ASP.NET 2.0.50727.0" />
    <EventID Qualifiers="49152">1334</EventID>
    <Level>2</Level>
    <Task>0</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2011-03-24T10:45:25.000Z" />
    <EventRecordID>11414</EventRecordID>
    <Channel>Application</Channel>
    <Computer>xxxx</Computer>
    <Security />
  </System>
  <EventData>
    <Data>An unhandled exception occurred and the process was terminated.

Application ID: /LM/W3SVC/1/ROOT/WebClient

Process ID: 4808

Exception: System.ArgumentNullException

Message: Value cannot be null.

StackTrace:    at System.Threading.Monitor.Enter(Object obj)
   at System.Data.ProviderBase.DbConnectionPool.TransactedConnectionPool.TransactionEnded(Transaction transaction, DbConnectionInternal transactedObject)
   at System.Data.ProviderBase.DbConnectionPool.TransactionEnded(Transaction transaction, DbConnectionInternal transactedObject)
   at System.Data.ProviderBase.DbConnectionInternal.CleanupConnectionOnTransactionCompletion(Transaction transaction)
   at System.Data.ProviderBase.DbConnectionInternal.TransactionCompletedEvent(Object sender, TransactionEventArgs e)
   at System.Transactions.TransactionCompletedEventHandler.Invoke(Object sender, TransactionEventArgs e)
   at System.Transactions.InternalTransaction.FireCompletion()
   at System.Transactions.TransactionStatePromotedCommitted.EnterState(InternalTransaction tx)
   at System.Transactions.TransactionStatePromotedBase.ChangeStatePromotedCommitted(InternalTransaction tx)
   at System.Transactions.InternalTransaction.DistributedTransactionOutcome(InternalTransaction tx, TransactionStatus status)
   at System.Transactions.Oletx.RealOletxTransaction.FireOutcome(TransactionStatus statusArg)
   at System.Transactions.Oletx.OutcomeEnlistment.InvokeOutcomeFunction(TransactionStatus status)
   at System.Transactions.Oletx.OletxTransactionManager.ShimNotificationCallback(Object state, Boolean timeout)
   at System.Threading._ThreadPoolWaitOrTimerCallback.PerformWaitOrTimerCallback(Object state, Boolean timedOut)</Data>
  </EventData>
</Event>

【问题讨论】:

    标签: asp.net iis event-log application-pool


    【解决方案1】:

    你不能在程序之外做任何事情。

    消息很明确:值不能为空,这是一个错误,一个错误的程序配置。

    一个函数被空值调用,然后崩溃。

    顺便说一句,池不是崩溃,只是页面不工作。

    【讨论】:

    • 该错误在内部.NET 代码中,无法更改这样的代码。
    【解决方案2】:

    据此:https://connect.microsoft.com/VisualStudio/feedback/details/449469/transactedconnectionpool-bug-in-vista-server-2008-sp2

    这是已知的 SP2 错误 - 我认为最简单的解决方法是 Polchen 写的:

    在 数据库连接字符串

    希望这个字符串在配置文件中而不是硬编码。

    【讨论】:

      猜你喜欢
      • 2012-03-30
      • 2011-01-16
      • 2011-11-18
      • 2010-10-03
      • 1970-01-01
      • 2020-12-26
      • 2018-04-25
      • 2017-03-14
      • 2011-03-03
      相关资源
      最近更新 更多