如何在 C# 中获取位字段枚举的字符串表示形式(MessageQueueErrorCode)?
我在 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
错误代码为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.
您可以将错误代码转换为枚举并使用 ToString():
,它应该返回枚举值的名称。
实际上,我不确定如果枚举不包含这个特定值(可能会抛出 InvalidCastException )会发生什么,但您可以自己尝试一下。
You can cast your errorcode to an enum and use 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.