1

通过 WMI.NET 连接到 Biztalk Server 2010 时,我能够成功阅读任意数量的类类型,但没有一个 Biztalk 类。每个都抛出以下异常措辞:

BizTalk Server cannot access SQL server.  This could be due to one of the following reasons:
1. Access permissions have been denied to the current user.  Either log on as a user that has been granted permissions to SQL and try again, or grant the current user permission to access SQL Server.
2. The SQL Server does not exist or an invalid database name has been specified.  Check the name entered for the SQL Server and database to make sure they are correct as provided during SQL Server installation.
3. The SQL Server exists, but is not currently running.  Use the Windows Service Control Manager or SQL Enterprise Manager to start SQL Server, and try again.
4. A SQL database file with the same name as the specified database already exists in the Microsoft SQL Server data folder.

Internal error from OLEDB provider: "Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'."

测试代码(没有安全信息):

ConnectionOptions options;
options = new ConnectionOptions();
options.Username = @"myusername";
options.Password = @"mypassword";
options.Authority = @"ntlmdomain:mydomain";

ManagementScope scope;
scope = new ManagementScope(@"\\BIZSERVERNAME\root\MicrosoftBizTalkServer", options);
scope.Connect();

ObjectQuery query = new ObjectQuery("SELECT * FROM MSBTS_Setting");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope,query);
var i = 0;
foreach (ManagementObject key in searcher.Get())
{
    listBox1.Items.Add(key.ToString());
    i++;
    if (i > 100) break;
}

将 MSBTS_Setting 更改为任何 Biztalk 类并获得相同的异常。将其更改为非 biztalk 类,它就可以正常运行。例如:CIM_Setting。

4

2 回答 2

2

您遇到了所谓的“双跳”问题。(这实际上不是 WMI/BT 特定问题,这也是 IIS 和使用 windows 身份验证的 Sql Server 的常见问题)

当使用“BizTalk-WMI”时,基本上会发生这种情况(假设客户端、BT-Server 和 BT-Management-DB 在同一个域中但在不同的机器上):

客户端凭据被发送到 BT 服务器/WMI 提供程序。BT-Server 应将凭据传输到 Sql-Server,但 kerberos(默认情况下)不允许这样做。

另请参阅此技术网文章:

基本上,您有 3 个使用“BT-WMI”的选项:

  1. 在 BT 主机上使用 WMI 运行您的代码,这只需要单跳到 sql-server。或者通过托管在 BT 主机上的 Web 服务公开必要的功能。
  2. 使用Microsoft.BizTalk.ExplorerOM组件
  3. 为帐户和 BT 主机启用委派(在 Active Directory 中): 允许信任计算机以进行特定服务的委派
于 2013-02-20T22:13:30.587 回答
0

我认为这可能是因为您用于访问 WMI 对象的帐户不是“SSO 管理员”组的成员。

我遇到了一个非常相似的问题(BizTalk WMI 访问问题)并且遇到了这篇文章。将帐户添加到“SSO 管理员”组对我有用。

于 2013-02-15T14:14:57.520 回答