如何在 C# 中获取位字段枚举的字符串表示形式(MessageQueueErrorCode)?

发布于 2024-10-05 13:12:06 字数 243 浏览 3 评论 0原文

我在 MessageQueueException 中收到 -2147024891 错误代码; MessageQueueErrorCode 类型。我怎样才能找到这里发生了哪些错误?

注意:我使用 System.Enum.GetValues 提取了此枚举的值,然后使用 LINQ 查询通过使用 & 来找出哪些值适合此错误。 (和);然后通过 System.Enum.GetName 获取它的名称并用“,”分隔符将它们连接起来......无论如何:失败!

I get a -2147024891 error code in a MessageQueueException; of type MessageQueueErrorCode. How can I find which errors occurred here?

Note: I have extracted values of this enum using System.Enum.GetValues and then used a LINQ query to find out which ones do fit in this error by using & (and); then getting it's name by System.Enum.GetName and joining them with a ',' separator...anyway: failed!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一绘本一梦想 2024-10-12 13:12:06

错误代码为0x80070005。 7是“设施代码”,它是Windows。换句话说,您没有收到消息队列错误,而是收到了 Windows 错误。错误代码 5 是“访问被拒绝”。

用户帐户出现问题,通常是没有足够的权限。

The error code is 0x80070005. The 7 is the 'facility code', it is Windows. In other words, you didn't get a message queuing error, you got a Windows error. Error code 5 is "Access Denied".

Something wrong with the user account, typically, not enough privileges.

一场信仰旅途 2024-10-12 13:12:06

您可以将错误代码转换为枚举并使用 ToString():

string error = ((MessageQueueErrorCode)ex.ErrorCode).ToString();

,它应该返回枚举值的名称。

实际上,我不确定如果枚举不包含这个特定值(可能会抛出 InvalidCastException )会发生什么,但您可以自己尝试一下。

You can cast your errorcode to an enum and use ToString():

string error = ((MessageQueueErrorCode)ex.ErrorCode).ToString();

which should return the Name of the enum value.

Actually i'm unsure what happens if the enum doesn't contain this specific value (maybe an InvalidCastException is thrown) but you can try it out for yourself.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文