【问题标题】:Need help regarding WCF web service with MQ interaction需要有关具有 MQ 交互的 WCF Web 服务的帮助
【发布时间】:2011-02-16 21:27:01
【问题描述】:

我创建了一个简单的 WCF Web 服务来将一些消息写入 MQ (Websphere MQ)。它托管在 IIS 6.0 服务器中。服务声明成功,但在将消息写入 MQ 时抛出异常,原因代码为 2063。

有没有办法覆盖 web 服务的运行用户(在代码中)?

提前谢谢你..

【问题讨论】:

  • Web服务默认运行在托管AppPool(IIS中配置)的账号下。
  • 谢谢 Ladislav Mrnka..我在 IIS 中修改了应用程序池属性。现在可以正常工作了....

标签: c# .net wcf ibm-mq


【解决方案1】:

原因码2063 0x0000080f MQRC_SECURITY_ERROR 指的是WMQ 外部的东西。例如,如果应用程序无法访问配置文件、密钥库密码不正确或者 QMgr 或应用程序无法访问域资源。

使用 Windows 服务器的管理员帐户之一访问 WMQ 时,该帐户在本地主机上解析,WMQ 无需查询域。但是,当使用域帐户访问 WMQ 时,QMgr 需要查询域以获取请求连接的帐户所属的组。出于这个原因,运行中的 QMgr 通常对管理员来说看起来很健康,但在从域帐户访问时却失败了。

测试这是否是问题的一种方法是确保使用本地帐户解决访问问题。在此示例中,我假设 QMgr 以 MUSR_MQADMIN 运行 - Windows 的默认帐户。我还假设服务器名称是bigserver。以下测试将问题隔离到 QMgr 或应用程序。

如果尚未这样做,请让应用程序以客户端模式连接。使用 MCAUSER('MUSR_MQADMIN@bigserver') 更改应用程序使用的客户端通道(替换您自己的服务帐户和服务器名称)并尝试重新连接。如果您收到另一个 2063,则错误在客户端应用程序配置中。如果您已连接,则 QMgr 需要授予查询域的权限。手册中有一个完整的部分向域管理员解释了究竟需要什么。如果这是问题,请指出您的域管理员here

请不要这样设置频道。任何可以访问它的人都是 WMQ 管理员!相反,一旦您开始工作,请将应用程序的服务帐户放在 MCAUSER 字段中,并使用 setmqaut 对其进行适当的授权。

【讨论】:

  • 感谢您的回复...当我在运行时检查我的服务在用户上运行时,它显示为“NT AUTHORITY\NETWORK SERVICE”。我如何在运行时(在代码中)覆盖这个用户?
  • 如果您使用客户端连接,则通道的 MCAUSER 会覆盖您编写的任何代码以设置 ID。空白 MCAUSER 允许连接的任何人成为管理员,因此如果考虑安全性,它几乎总是设置为应用程序的服务帐户。如果安全不是问题,只需在此处指定的环境类中设置所需的 ID:bit.ly/fQGLHp
猜你喜欢
  • 2015-10-24
  • 2011-01-30
  • 2021-09-06
  • 2012-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多