2010-02-11 149 views
1

我已经编写了一些代码,用于检查iis元数据库以查看安装了哪些网站以及它们的虚拟目录的保存位置。该代码在服务器上本地运行时运行良好。连接到远程2008服务器上的IIS元数据库

我试图扩展它,以便它可以远程工作。我正在努力获得它的身份验证。我目前使用的LogonUser API,但这总是返回上登录虚假

  • 我知道我有凭据都不错
  • 我没有我和服务器
  • 如果我之间的防火墙用了LogonUser API调用和用户的RunAs命令行我得到的错误运行应用程序:COMException (0x80005000)

任何想法,将不胜感激。

+1

您是否正在使用WMI,System.DirectoryServices? – Kev 2010-02-11 17:38:40

+0

@Kev,是的,我正在使用WMI和目录服务。 – ilivewithian 2010-02-12 08:48:32

回答

0

通常,如果您在远程服务器上执行编程式管理,那么您会将凭证传递给API。例如,如果您使用的是System.DirectoryServices,那么您应该这样做:

string server = "MyHost"; 
string username = "bob"; 
string password = "bob123$"; 
string path = "IIS://" + server + "/W3SVC/1"; 

DirectoryEntry de = new DirectoryEntry(path, username, password); 
+0

我也试过,但没有成功。我厌倦了用户名作为'username'和'servername \ username'。服务器不在域上有什么区别吗? – ilivewithian 2010-02-12 08:54:40

+1

@ilivewithian - 我试过在不在我的开发PC的域中的服务器上。您的远程用户帐户是否拥有正确的权利和特权? – Kev 2010-02-12 12:54:30

+0

我正在使用本地管理员用户,因此它应具有正确的权限。我设法使用LogonUser API进行登录。我希望通过imersonation来处理这个问题会有所帮助,但我得到同样的错误。我想在服务器2008中必须有其他东西被锁定,我还没有找到。 – ilivewithian 2010-02-12 17:26:59

相关问题