问题标签 [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.
c# - 访问被拒绝尝试在 Windows 用户临时文件夹中提取档案
我正在尝试对位于 Windows 用户临时目录 (C:\Documents and Settings\User\Local Settings\Temp ),在我的 c# 应用程序中使用 Process。
我认为由于“访问被拒绝”而发生的进程返回错误,因为当我挖掘 .NET 的进程对象时,我可以看到错误代码为 5 的 win32Exception。
在其他地方做同样的事情之前效果很好,所以我想这可能是我不应该做的事情?(运行一个进程以使用 %TEMP% 上的文件)也许我需要以某种方式通过安全性?
c# - Win32Exception 没有足够的存储空间来处理这个命令
通过我对MaxTo的自动崩溃收集,我得到了以下崩溃报告:
另一个堆栈跟踪:
在这个最新的堆栈跟踪中,根本没有提到 MaxTo,而且我遇到的 90% 的崩溃都与上述类似的堆栈跟踪有关。
在网上阅读我发现如果您忘记释放或处置变量,此错误很常见。当查看我的WndProc
时,似乎有时会出现问题,我找不到一个地方可以挂起对任何对象的引用。除了一个变量之外的所有变量都是 WndProc 的本地变量,因此在方法终止时应该进行垃圾回收。
即使在多天运行程序时,我也无法重现该错误。
我的假设是系统的未碎片化内存或 GDI 句柄都很低,但我无法在任何地方确认这一点。似乎没有关于此错误的任何好的文档。
任何想法它可能是什么?我能做些什么来防止这个错误吗?
更新:由于缺乏一个像样的解决方案,这个问题被重新打开了更多的堆栈跟踪。简单地忽略它并不能解决问题。
c# - 抛出 Win32Exception
我最近一直在编写很多涉及与 Win32 API 互操作的代码,并且开始想知道处理由调用 Windows API 函数引起的本机(非托管)错误的最佳方法是什么。
目前,对本机函数的调用如下所示:
引发异常的行可以等效地重写,我相信:
现在,这一切都很好,因为它适当地引发了一个异常,其中包含设置的 Win32 错误代码以及(通常)人类可读的错误描述作为Message
Exception 对象的属性。但是,我一直认为建议至少修改/包装这些异常中的一些(如果不是全部),以便它们提供稍微更面向上下文的错误消息,即在本机代码的任何情况下更有意义的错误消息是正在使用。为此,我考虑了几种替代方案:
在构造函数中为
/li>Win32Exception
.将 包装
/li>Win32Exception
在另一个 Exception 对象中,以便保留原始错误代码和消息(Win32Exception
现在是InnerException
父异常的)。与 2 相同,除了使用另一个
Win32Exception
作为包装异常。与 2 相同,但使用派生自的自定义类
Exception
作为包装异常。与 2 相同,除了在适当时使用 BCL(基类库)异常作为父异常。不确定在这种情况下是否适合将 设置为
InnerException
(Win32Exception
可能是低级包装器,但不是更高级别/抽象的接口,这不会使 Win32 互操作在幕后发生明显?)
基本上我想知道的是:在 .NET 中处理 Win32 错误的推荐做法是什么?我看到它以各种不同的方式在开源代码中完成,但我很好奇是否有任何设计指南。如果没有,我会在这里对您的个人喜好感兴趣。(也许您甚至没有使用上述方法?)
c# - Win32Exception: 目录名无效
我试图在运行 Vista 并启用了 UAC 的 2 台不同计算机中以具有管理员权限的不同用户身份运行进程,但在其中一台计算机中,我得到一个 Win32Exception,显示“目录名称无效”
谁能告诉我我的代码有什么问题?
更新
执行上述代码的应用程序具有 requireAdministrator 执行级别。我什至将工作文件夹设置为“Path.GetDirectoryName(myFile)”和“New System.IO.FileInfo(myFile).DirectoryName”
c# - System.ComponentModel.Win32Exception:操作成功完成
长时间运行我的 Windows 窗体应用程序时,有时会出现此异常:
这可能是什么原因?
c# - 事件日志、模拟和拒绝访问 Win32Exception
我正在使用专用帐户(使用 SDDL 策略)将事件日志条目写入自定义事件日志。为此,我使用 WindowsImpersonationContext 并使用 LogonUser 获取令牌:
这段代码生成事件日志条目,但我也得到了 Win32Exception:
现在,如果我在模拟行之后放置一个 Thread.Sleep(500),异常就会消失:
是什么导致了这个异常,即使有访问被拒绝异常,事件日志条目是如何被写入的?
编辑:并且在使用之前,我已经使用相关日志注册了事件源。我只包含小代码片段以保持消息简短。
.net - HRESULT 异常
是否有解释错误代码的列表。Eks: HRESULT: 0x81070215 没有告诉我什么时候出错了?
c# - 为什么 .NET 不能在内部清除错误?
我正在运行以下场景:
pass 是错误的,但可以预料,因为我正在运行重叠。
问题是 Marshal.GetLastWin32Error() 不返回 ERROR_IO_PENDING 它返回 ERROR_ALREADY_EXISTS。这对我来说很奇怪,因为当我创建文件时错误并没有显示,但是当我写它时出现了。现在我试图弄清楚如何关闭我似乎无法访问的句柄,或者至少得到一个关于为什么会发生这种情况的解释。
编辑:好的,我已经解决了问题,我知道是什么导致了问题。
显然,AppendAllText 调用在内部创建了一个错误。我应该在此日志调用后重置错误吗?我想知道框架不会在其函数的内部工作中重置低级调用会很有帮助。啊,你每天都学到新东西。
我想我的新问题是,我应该在这个调用之后重置低级错误,还是有其他方法来记录输出(不使用像 log4Net 这样的 3rd 方工具或对 Debug.Trace 输出感兴趣)?基本上以某种方式打开一个不影响 Marshal.GetLastWin32Error(); 的附加文件;输出。
wcf - WCF 服务的 Win32Exception @ ServiceHost.Open()
我正在为我正在编写的一组广泛的 WCF 服务基础架构编写 BDD 规范。我注意到我编写的每个规范都涉及对 ServiceHost.Open() 的调用,该行需要 2 到 6 秒才能执行(随着我添加越来越多的规范,时间会不断增长)。我注意到,当调用此方法时,会抛出 Win32Exception:
ServiceModel 配置如下:
注意:我已配置 Http.sys 并将http://+:80/calculator/添加为 http 命名空间排除项,因此这不是问题的一部分。
此错误在 Windows 7 Ultimate 系统上最为严重。在 Vista Ultimate 系统上,它似乎不会对性能造成太大影响,但是 ServiceHost.Open() 是执行所花费的大部分时间。我不明白为什么当 URL 是 localhost 时它根本是个问题......我希望环回接口是最快的。
c# - PrintDocument.Print() 抛出 Win32Exception
我从以下代码中得到一个奇怪的异常:
最后一行是抛出一个带有详细信息“句柄无效”的 Win32Exception,根据 msdn 文档,唯一应该抛出的异常是找不到打印机。异常似乎是某种驱动程序/非框架异常。
当我选择我的打印机(Lexmark T640,设置为直接打印到打印机端口)时,代码打印正常,但是选择我可以访问的其他两台打印机(另一台 T640 或戴尔颜色)中的任何一台,代码都会失败。另外两台打印机设置为通过我们的中央打印服务器进行打印,但我认为这不会有任何区别。任何人都可以给我任何指示吗?
编辑:刚刚尝试使用 printDialog.PrintQueue.Fullname 并且行为没有什么不同。替换为垃圾打印机名称会按预期抛出 InvalidPrinterException,表明它已找到打印机,但似乎失败了。