当我尝试从在 IIS 5.1 下运行的 C# 应用程序连接到远程 IIS 6 服务器时,我收到“Access Deined”COMException。
有任何想法吗?我在原始问题中遇到了所有相同的问题。
更新 - 2009 年 4 月 1 日
我找到了这个解决方案(http://www.codeproject.com/KB/cs/Start_Stop_IIS_Website.aspx),它包含一个连接到 IIS 服务器以启动和停止网站的窗口应用程序。我能够在我的工作站上运行它并连接到 IIS 服务器。
呃....为什么我可以运行这个独立的应用程序而不是我的 ASP.NET 应用程序?
原来的
当我尝试使用 DirectoryEntry.Exist 方法从远程计算机连接到 IIS 以检查 IIS 服务器是否有效时,我收到“拒绝访问”COMException。
string path = string.Format("IIS://{0}/W3SVC", server);
if(DirectoryEntry.Exist(path))
{
//do something is valid....
}
我是一个活动目录组的成员,该组已添加到我尝试连接的 IIS 服务器的管理员组中。
有没有人遇到过这个问题并知道如何解决它?
更新:
@Kev - 这是一个 ASP.NET 应用程序。此外,我可以通过 IIS6 管理器在没有用户名和密码的情况下连接到远程服务器。
@Chris - 我正在尝试连接到远程服务器以显示虚拟目录的数量并确定每个目录的 .NET 框架版本。请参阅这个SO 问题。
@dautzenb - 我的 ASP.NET 应用程序在 IIS 5.1 下运行,试图连接到 IIS 6 服务器。我可以在远程服务器上的本地 ASPNET 帐户的安全日志中看到故障审核。当我尝试调试应用程序时,我在我的域帐户下运行并且仍然获得访问被拒绝。
更新 2:
@Kev - 我能够使用以下重载创建 DirectoryEntry 对象:
public DirectoryEntry
(
string path,
string username,
string password
)
但是,在我调试应用程序时,所有属性都包含“引发了类型为‘System.Runtime.InteropServices.COMException’的异常”。
此外,AuthenticationType 属性设置为 Secure。
更新 3:
每次我尝试建立连接时,远程 IIS 服务器的安全事件日志中都会出现以下两个失败审核条目:
第一个事件:
事件类别:帐户登录
事件 ID:680
记录尝试:MICROSOFT_AUTHENTICATION_PACKAGE_V1_0
登录帐户:ASPNET
源工作站:
错误代码:0xC0000234
第二个事件:
事件类别:登录/注销
事件 ID:529
登录失败:
原因:未知用户名或密码错误
用户名:ASPNET
域:(MyDomain)
登录类型:3
登录过程:NtLmSsp
身份验证包:NTLM
工作站名称:(MyWorkstationId)
调用者用户名称: -
呼叫者域: -
呼叫者登录 ID: -
呼叫者进程 ID: -
中转服务: -
源网络地址: 10.12.13.35
源端口: 1708
模拟设置为真,用户名和密码为空。它使用远程 IIS 服务器上的 ASPNET 帐户。