【问题标题】:I'm getting: exception has been thrown by the target of an invocation我得到:调用的目标抛出了异常
【发布时间】:2013-03-10 21:29:51
【问题描述】:

当我尝试打开我的页面时遇到异常:

发生未处理的异常,进程终止。

应用程序 ID:/LM/W3SVC/6/ROOT/ROXY/es

进程 ID:2972

异常:System.InvalidOperationException

消息:句柄未初始化。

堆栈跟踪:
在 System.WeakReference.set_Target(对象值)
在 System.Data.ProviderBase.DbConnectionInternal.CloseConnection(DbConnection owningObject, DbConnectionFactory connectionFactory)
在 System.Data.Odbc.OdbcConnection.Close()
在 DsNet.CUIHandler.CloseConn()
在 DsNet.CUIHandler.Finalize()

在页面中我收到错误:

消息:调用的目标已抛出异常。

有什么想法吗?

提前致谢

【问题讨论】:

    标签: c# iis handler


    【解决方案1】:

    页面中的错误听起来无关紧要,应该通过捕获并记录它来进行调查。如果您最终捕获了TargetInvocationException,那么您可以通过.InnerException 获得实际 异常。

    关于另一个问题:什么是 DsNet?那是你的代码吗?还是您正在使用的图书馆?无论哪种方式,听起来它在终结器中有一个错误(在终结器中触摸托管对象是一个真的坏主意)。我希望你可以通过使用using 来减少这种脾气暴躁扫。我在谷歌中获得DsNet.CUIHandler 的唯一“命中”是this question - 所以我猜测那是你的代码。如果是这样:不要接触终结器中的其他托管对象。

    【讨论】:

    • 这就是问题所在,DsNet 是我正在使用的一个库,我无权修改它。有什么方法可以识别问题吗?该网站多年来一直运行良好
    • @ErnestoRodriguez 终结器(作为 GC 的一部分)将在不可预测的时间发生,因此理想情况下应该单独解决;就像我说的,我能建议的最好的事情是:确保你使用using,或者在你完成它们之后处理IDisposable 对象。除此之外:您没有做太多事情……我只能说“某种编码、配置或环境问题”。这没有多大帮助......
    猜你喜欢
    • 2023-02-22
    • 1970-01-01
    • 1970-01-01
    • 2016-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-17
    相关资源
    最近更新 更多