问题标签 [dllhost]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
dll - “自定义组件”上的 COM 异常 - 如何识别 DLL?
我们有一个大型的遗留 VB 应用程序,由许多 DLL(几十个左右)组成,全部安装到一个 COM+ 服务器应用程序中。时不时会发生一些事情,导致 dllhost.exe 崩溃(并自动重新启动),并在 Windows 应用程序事件日志中留下此消息...
系统调用了一个自定义组件,该组件发生故障并生成异常。这表明自定义组件存在问题。通知该组件的开发人员发生了故障,并向他们提供以下信息。
服务器应用程序 ID:{8CC02F18-2733-4A17-9E5C-1A70CB6B6977}
服务器应用程序实例 ID:{1940A147-8A5E-45FA-86FE-DAF92A822597}
服务器应用程序名称:MyTestApp
此错误的严重性质已导致进程终止。
例外:C0000005
地址:0x758DA3DA来源:Complus
事件 ID:4786
级别:错误
除此之外,还有另一个日志,特别是在 dllhost.exe 上...
错误应用程序名称:dllhost.exe,版本:6.0.6000.16386,时间戳:0x4549b14e
错误模块名称:msvcrt.dll,版本:7.0.6002.18005,时间戳:0x49e0379e
异常代码:0xc0000005
错误偏移量:0x0000a3da 错误
进程 id:0x83c
应用程序开始时间: 0x01cb50c507ee0166
错误应用程序路径: %11
错误模块路径: %12
报告 ID: %13
我知道它标记了 C 运行时 (msvcrt) 中的故障,但理想情况下,我需要将其追溯到调用到 msvcrt 的 DLL(可能带有错误的数据/参数)。那么在不安装调试器的情况下,有什么方法可以识别导致这种情况的 DLL 吗?我正在尝试查看是否有任何可用于离线分析的内存转储 - 从而将地址与特定内容联系起来。但没有那个,我不确定这是可能的。是否可以告诉 COM 子系统在托管应用程序崩溃时生成小型转储?(是的,它可以[可能] - “转储”选项卡上有一个复选框)。
这是在 Windows Server 2008 R1 32 位上(但也对 Server 2003 感兴趣)。
它不会影响应用程序的可用性——COM+ 只是重新启动 dllhost 并且应用程序会继续运行,但它会带来一些不便,需要修复。
编辑好吧,我有一个崩溃转储,我有windbg,但它没有帮助。不确定我是不是很厚(一种可能性)或其他东西:-) 的输出!analyze -v
低于,但它没有显示我们的 DLL 中的任何内容,尽管它看起来无法解析 FAULTING_IP?我不确定下一步该转向哪里。
我想知道我的任何 pdb 是否有问题并且值得生成新的 - 连接到 Microsoft 的符号服务器,所以它们不应该,但不确定它(显然)报告错误符号的模块是什么(BUGCHECK_STR 和 PRIMARY_PROBLEM_CLASS ) (或者这些符号是在最初运行代码的服务器上吗?)。将 PDB 放在服务器本身上会更好吗?
如果没有,还有其他想法吗?我之前曾短暂使用过windbg,但我不是它的常规用户,所以也许我需要输入更多的咒语才能更深入地挖掘?欢迎指导:-)
windows - 如何在单独的 dllhost 进程中启动 COM 服务器?
我的 COM 组件实现为代理 dll。我通过调用 CoCreateInstanceEx() 创建了一个,但它是在共享的 dllhost.exe 进程中启动的。有没有办法在单独的 dllhost 进程中启动我的 COM 组件?
wcf - 在 .Config 文件中找不到端点元素
祝大家好日子,
我们在创建 ChannelFactory 对象时从配置文件中检索端点时遇到了一些配置问题。
在 ServiceModel 客户端配置部分中找不到名称为“无关服务”和合同“无关合同”的端点元素。这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中找不到与此名称匹配的端点元素。
这种异常的通常解决方案是将 .config 文件添加到运行此代码的 exe 中。在这种情况下,我们在 com+ 上运行此代码,因此我创建了包含所有端点的 dllhost.exe.config 文件。
有趣的是,我也从客户端应用程序使用此服务,并且我的 wcf 平台在那里找到了相同的端点,没有任何问题。我认为 dllhost.exe.config 的其他端点工作正常。
顺便说一句,使用此服务的有问题的代理是定制的企业库代码。在调试代码时,它会在 dllhost 进程下运行。
有什么方法可以找出它寻找端点的配置文件吗?
谢谢你。
c# - c# Remote ServerManager & COM Surrogate 足迹
我有以下方法,它在漂亮的网页上显示 IIS 工作请求,但是每次刷新页面时,它都会增加目标机器上 dllhost(COM 代理)的内存消耗,直到没有更多可用内存为止。我是 C# 的初学者,所以我希望有人可以向我解释如何更改此代码以在每次刷新时释放目标服务器上的内存占用?
c# - 从 Windows (C#) 打开调制解调器配置对话框
有没有机会使用 ac# 程序从 Windows 控制中心打开调制解调器对话框?
具体对话框是:Windows -> Control center -> Telephone and modem -> tab advanced -> select provider -> button configuration
启动的进程在任务管理器中显示为 dllhost.exe。
谢谢和亲切的问候 Bine
powershell - 如何在 PowerShell 中打开图像然后自动关闭它?
我想在 Windows 照片查看器中打开一个图像,然后使用 PowerShell 自动关闭它。我将如何实现这一目标?
我尝试使用Start-Process
cmdlet 使用默认应用程序打开图像并让它返回关联的进程 ID。图像已打开,但我没有得到进程 ID。这可能是因为 Windows 照片查看器进程包含在dllhost.exe
.
PS C:\Users\Public\Pictures> $process = Start-Process -FilePath .\Wiki-error.jpg -PassThru Start-Process : 该命令无法完全运行,因为系统无法找到所需的所有信息。在 line:1 char:12
+ $process = Start-Process -FilePath .\Wiki-error.jpg -PassThru + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [Start-Process], InvalidOperationException + FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell。 Commands.StartProcessCommand PS C:\Users\Public\Pictures> $process.ID
PS C:\Users\Public\Pictures> Stop-Process $process.ID
Stop-Process:无法将参数绑定到参数“Id”,因为它为空。在 line:1 char:14 + Stop-Process $process.ID + ~~~~~~~~~~~ + CategoryInfo : InvalidData: (:) [Stop-Process], ParameterBindingValidationException + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell .Commands.StopProcess 命令
我运行 PowerShell 2.1 和 Windows 7。有什么建议吗?
powershell - 在 Powershell 脚本中处理 COM 对象
我有一个运行 Powershell 脚本的计划任务。此 Powershell 脚本发送 HTTP 请求并搜索返回的 HTML。由于这个脚本,我留下了一堆没有关闭的 dllhost 进程。如果我理解正确,这是 COM 对象的结果。
与 COM 对象相关的唯一变量是:
当我运行时$specifiedDiv.GetType()
,我得到这个结果:
我的问题是如何关闭此对象或阻止脚本创建 dllhost 进程?
编辑:
我尝试了上述方法,但仍然得到 dllhost 进程。
c# - 如何在c#中杀死一个Shell执行的进程
我想使用 shell 执行显示一个 tiff 文件。我假设默认应用程序是照片查看器。我的问题是,当我想用 photoviewer.Kill() 终止进程时,我得到一个 System.InvalidOperationException。在 photoViewer.Start() 之后设置断点时,我意识到 photoviewer 不包含 ID。我有足够的方法杀死它吗?当它通过 dllhost.exe 运行时,我不想重新运行所有名为 dllhost 的进程并将它们全部杀死,因为我不知道 dllhost 还运行什么。
我有另一种没有 shell 执行的方法,但这种方法似乎有 dpi 问题。 没有shell执行的方法
wpf - 获取 PrintTicket 时 DllHost.exe 内存泄漏
我有一个在 windows10(64 位环境)上运行的 x86 应用程序。该应用程序的一个功能是生成大量报告,因此涉及大量打印。但是,我注意到每次我尝试在打印队列上调用 DefaultPrintTicket 时,dllhost 进程(COM Surrogate)都会在内存中增长。
我设法隔离了负责的代码并将其移至测试 WPF 应用程序。单击按钮时,将触发此代码:
打印队列无关紧要,因为我尝试了所有这些并且问题仍然存在。我知道这可能与以下内容重复:PrintTicket DllHost.exe Memory Climbs
但是,那里提供的解决方案不起作用,因为 PrintTicked 不是 IDisposable 对象。我还尝试在注册表中进行一些调整(即找到 AppId AA0B85DA-FDDF-4272-8D1D-FF9B966D75B0 并删除“AccessPermission”、“LaunchPermission”和“RunAs”),但没有结果。
我无法将应用程序重建为 AnyCpu,并且我想避免创建单独的 64 位进程仅用于打印,因为很难将在一个应用程序中生成的报告发送到另一个应用程序。
非常感谢任何建议。