【发布时间】:2015-05-13 02:08:50
【问题描述】:
在 CustomWebBrowser (winforms) 代码上遇到致命异常。
“运行时遇到致命错误。错误地址位于线程 0xf94 上的 0x6c9a60c6。错误代码为 0xc0000005。此错误可能是 CLR 或用户代码的不安全或不可验证部分中的错误。此错误的常见来源包括 COM-interop 或 PInvoke 的用户封送错误,这可能会损坏堆栈。”
这在安装了 .Net Framework 4.5 的机器上运行良好,但在安装了 .Net Framework 4.0
的机器上却不行>// constructor
public AutoCompleteWebBrowserSite(WebBrowser host) :
base(host)
{
// get the CCW object for this
_unkOuter = Marshal.GetIUnknownForObject(this);
Marshal.AddRef(_unkOuter);
try
{
// aggregate the CCW object with the helper Inner object
_inner = new AutoCompleteHelper(this);
_unkInnerAggregated = Marshal.CreateAggregatedObject(_unkOuter, _inner);
// obtain private WebBrowserSite COM interfaces
try
{
_baseIDocHostUiHandler = (WebBrowserNativeMethods.IDocHostUIHandler) Marshal.GetTypedObjectForIUnknown(_unkInnerAggregated,typeof (WebBrowserNativeMethods.IDocHostUIHandler));
}
catch(Exception)
}
finally
{
Marshal.Release(_unkOuter);
}
}
异常在_baseIDocHostUiHandler = (WebBrowserNativeMethods.IDocHostUIHandler)Marshal.GetTypedObjectForIUnknown(_unkInnerAggregated,typeof (WebBrowserNativeMethods.IDocHostUIHandler));抛出
还通过在 app.config 文件中禁用 gcConcurrent 来尝试 disabling concurrent garbage collection
任何帮助将不胜感激。
【问题讨论】:
-
请不要多次发布同一个问题。而是编辑您的原始问题以添加其他信息或在发布新问题之前将其删除。你原来的问题:stackoverflow.com/questions/28981784
标签: c# winforms com webbrowser-control