问题标签 [win32exception]

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.

0 投票
0 回答
343 浏览

c++ - 使用 ShellExecuteEx 打开 Office 文档时出现 ERROR_DDE_FAIL

打开 office 文件时遇到从 ShellExecuteEx 返回的错误。这只发生在某些电脑上,即使它们具有相同的 OS/Office 版本/等。

我收到的错误是 ERROR_DDE_FAIL,办公室给出的消息是:“将命令发送到应用程序时出错。”

这是我正在使用的代码:

0 投票
3 回答
10486 浏览

c# - 获取进程信息时的 System.ArgumentException 和 System.ComponentModel.Win32Exception

当我尝试将进程信息写入控制台时,我得到 System.ArgumentException 和 System.ComponentModel.Win32Exception。这是什么原因造成的?我怎样才能停止拥有这些?

“string companyName = processListe[i].MainModule.FileVersionInfo.CompanyName;”中发生错误 线。

错误信息:

最后,我对那些让我出错的过程进行了信息输出:

0 投票
0 回答
1141 浏览

c# - 我无法捕捉 Win32Exception?

我有一个 Wpf 应用程序。我开始了一个新的过程。该进程是一个控制台应用程序。当我启动 Wpf 应用程序时,它会抛出一个 Win32Exception“系统找不到指定的文件”。问题是我没有调用堆栈来跟踪谁抛出异常。我尝试使用 try/catch 块来捕获代码中许多地方的异常。问题是我无法捕获异常 System.ComponentModel.Win32Exception。我使用 C# 语言开发 Wpf 应用程序的逻辑。对不起,我的英语不好!

0 投票
1 回答
1156 浏览

c# - 跟踪和“设备未准备好”

我编写了一个非常简单的应用程序,它接受 XML 文件中的成批遥测日志行并将它们转录到 SQL Server 上的表中。我将这些传入数据块中的每一个称为“章节”。

出于性能原因,每一章都包含在一个事务中,这样就不是一百个隐式事务,而是一个针对 100 个新行的事务。

不幸的是,存在重复,并且由于共享事务上下文,它们占用了整章。这是不常见的,但并不罕见到可以忽略。所以我添加了一个循环、一个重试标志和一个维护跳过列表的捕获(SqlException)。当插入一行时,我回滚事务,创建一个新事务,将行号添加到跳过列表,设置重试标志并让它循环。除跳过列出的行外,所有行都被重新处理。如果第二行 barfs,除了跳过列表有两个项目外,会发生同样的事情。

整个安排有效。给我咖喱的是最后的游戏。当章节被端到端处理而没有任何异常时,循环退出,然后我检查跳过列表是否为空。当它不为空时,我尝试使用 Trace.TraceWarning() 编写一个事件日志条目,详细说明失败的行和 XML 块,以供以后取证。

正是在这一点上,事情向南发展。此 Trace 语句带有一个声称“设备未准备好”的 Win32 异常。

有没有人见过这样的事情?

一夜之间,我注意到它偶尔会毫无怨言地工作。我在 Trace.TraceWarning() 之前插入了一个 Thread.Sleep(),所以看看这是否能解决它会很有趣。我可能应该补充一点,我注意到该消息已成功记录到 Visual Studio 的跟踪侦听器中,这就是让我认为它与速度或时间相关的原因。

一天后,很明显,睡眠线程没有任何区别。我已经重写了整个业务,以便 StringBuilder 累积状态,并且在循环退出后会出现单个跟踪语句。Win32Exception 不再明显,即使在拒绝多行需要两次以上通过时也是如此。究竟是什么导致了该特定异常,我仍不清楚。我希望有人可以为这个黑暗的角落投下光明,但我没有什么要补充的,因为每章只有一个日志条目是理想的;即使没有 Win32Exception,“解决方法”也将是对代码的改进。

说得太早了。邪恶的 Win32Exception 又回来了。这是它的代码:

这是异常的堆栈跟踪:

WCF 调用 Write 方法以响应 MSMQ 消息的到达。消息的内容是 XML 字符串。删除事件日志侦听器使问题消失(到目前为止)。

对于那些检查堆栈跟踪的人来说,第 179 行位于粘贴代码的末尾。这里又是:

我突然想到:我想知道是不是因为 XML 使消息对于事件日志来说太大了?我已经有一个限制章节文件大小的设置。我会尝试减少它,看看会发生什么。

0 投票
2 回答
6382 浏览

.net - “配额超出”Win32Exception 的诊断

大多数时候,作为 .Net 开发人员,我们可以自由地在我们的高级抽象世界中胡闹,但有时现实会踢你的私处,告诉你找一个真正懂的人。

我刚刚有过这样的经历之一。我认为将角数据列为项目列表就足够了,以便您了解我们在这里拥有的内容:

  • Win2008服务器
  • 64位环境
  • 多个客户端同时使用的 WPF 应用程序
  • Application 是一个启动器,它使用 Process.Start() 打开其他应用程序
  • 有时我们会遇到下面列出的异常

编辑#1 经过一番检查,这里有更多细节:

  • 启动是一个两步过程,启动器使用 Process.WaitForExit() 启动一个中间窗口

  • 从中间窗口,可以以相同的方式启动其他进程 (Process.WaitForExit)。

  • 由于只打开中间窗口且没有用户交互,启动器进程的句柄数量会随着时间的推移而增加。我们在这里看到的最大增加是 400 --> 6000 个句柄。

编辑中添加的事实真的让我想知道框架中的某个地方是否可能存在句柄泄漏。我正在尝试隔离问题并检查是否可以从头开始重现它。与此同时,任何形式的暗示、想法、支持甚至巧克力都被欣然接受!

编辑#2:为了使流程响应PostMessage(),我们删除了Thread.WaitForExit. 相反,我们为 Process 的 Exited 事件添加了一个处理程序,并将 Launcher 发送到一个循环中,如下所示:

Exited-Handler 设置foo为 false 并且不执行任何其他操作。尽管如此,Handles 的数量仍在增加(半小时内从 400 增加到 800)。

编辑#3 有趣的事情终于来了。

这使它保持了应有的方式,很少有把手,都很漂亮。现在这让我想知道这里出了什么问题......我将再次与负责的开发人员交谈,以检查启动器的其他功能。到目前为止,我听说它使用XmlDocument.Load()读取了一些配置值,这不是IDisposable- 使得这里很难产生任何泄漏......

0 投票
1 回答
1828 浏览

c# - 尝试从使用 ProcessStartInfo 和 Process 的方法中运行 slui.exe

我在从 c# 中的方法运行 slui.exe 时遇到问题。我正在使用代码:

ProcessStartInfo startInfo = new ProcessStartInfo(@"C:\Windows\System32\slui.exe"); Process p = new Process(); p.StartInfo = startInfo; p.Start(); p.WaitForExit();

但我不断收到 Win32Exception:“系统找不到指定的文件”。

如果我将 ProcessStartInfo 更改为: (@"C:\Windows\System32\cmd.exe") 它将启动得很好。

在这种情况下运行 slui.exe 是否有问题?

我确定该文件位于指定的目录中,所以我很难理解这里可能出了什么问题。

任何想法如何从 ac# 方法调用 slui.exe?

0 投票
2 回答
1424 浏览

c# - Win32Exeption:操作成功完成...图形

我搜索了一些解决方案,但没有一个人显示解决方案......如果有人能解释它为什么会发生以及如何解决它(以简单的方式),我将不胜感激:)

一直在同一个地方发生……在我启动程序几分钟后。

在发生这种情况之前它会运行几次(比如 40-80 次):

Win32Exeption 未处理:操作成功完成

0 投票
1 回答
2294 浏览

c# - 在 32 位 Windows 上 WTSQueryUserToken 后出现“Win32Exception:操作成功完成”(64 位工作)

我正在用 C# 开发一个小型 Windows 服务,它需要在某些时候与 Win32 API 进行互操作。我收到以下对我没有意义的异常:

System.ComponentModel.Win32Exception: The operation completed successfully

在此 C# 代码段的最后一行之后:

这是我在声明WTSQueryUserToken中的方式WtsApi32

一些事实:

  • 这在 64 位 Win7 上完美运行,但在 32 位 Win7 上失败
  • 执行此操作时不可能达到10,000 个句柄限制,这是一个非常小的 Windows 服务中的第一个 Win32 调用。
  • 我认为可能存在一些潜在的 Win32 错误,但一些错误用 0 覆盖了错误代码,从而给了我“成功”错误消息,但我不知道如何确认甚至诊断这一点。
  • 当我捕捉到异常时,sessionId 为 1,userTokenPtr 为 0。但是,GetLastError 返回 0,所以我不知道发生了什么。
  • 我发现这个问题的几乎所有答案都与用户控件的不当处置有关。由于这是一项 Windows 服务,因此并非如此

我猜我的 WTSQueryUserToken 声明一定有问题,因为它只在 32 位 Windows 上失败,这让我认为这是一个编组问题。但是,我仍然看不到它可能是什么。

0 投票
1 回答
629 浏览

c# - 在 Windows 7 中通过 \Local Settings\Application Data\ 启动应用程序时出错

简单代码:

如果路径 = C:\Users\Marat\AppData\Local\MyCompany\Program.exe,没关系!

但如果路径 = C:\Users\Marat\Local Settings\Application Data\MyCompany\Program.exe

得到例外:

System.ComponentModel.Win32Exception(0x80004005):进行了无效的名称请求。目前无法检索请求的名称

实际上,一切正常,但在某些时候它开始给出这个错误。

0 投票
4 回答
1706 浏览

c# - 错误 - 当文件确实存在时找不到文件

我正在尝试使用 运行进程System.Diagnostics.Process.Start(),但出现以下错误:

我仔细检查了路径,甚至将字符串复制到一个cmd窗口,它运行得很好。可能是什么问题呢?

我正在使用 Win7 64 位,我尝试运行的程序是用 mingw64-x64 编译的,我正在为 .NET 2.0 编译

编辑
在尝试执行建议时

我发现从命令字符串中删除标志解决了这个问题(我不认为这是一个问题,所以之前没有提到)

如何运行带参数的命令?