Iis 调用DirectoryEntry.Invoke方法的模拟异常

Iis 调用DirectoryEntry.Invoke方法的模拟异常,iis,impersonation,Iis,Impersonation,我在尝试使用System.DirectoryServices.DirectoryEntry.Invoke方法回收远程IIS服务器上的应用程序池时遇到了一个令人沮丧的问题 基本上下文是两台客户端计算机和一台IIS 7.0服务器计算机Windows 2008 server myServer,它们都位于同一Windows域中。我想在客户端计算机上运行代码以 在IIS服务器上回收应用程序池 以下是相关的代码片段: DirectoryEntry DirectoryEntry=new directoryen

我在尝试使用System.DirectoryServices.DirectoryEntry.Invoke方法回收远程IIS服务器上的应用程序池时遇到了一个令人沮丧的问题

基本上下文是两台客户端计算机和一台IIS 7.0服务器计算机Windows 2008 server myServer,它们都位于同一Windows域中。我想在客户端计算机上运行代码以 在IIS服务器上回收应用程序池

以下是相关的代码片段:

DirectoryEntry DirectoryEntry=new directoryentryis://myServer/W3SVC/AppPools/SomeAppPool、domainUserid、密码、AuthenticationTypes.Secure

directoryEntry.InvokeRecycle,null

在一台客户机上,代码成功运行,但在另一台客户机上,代码引发与模拟相关的异常,请参见下文。 我在两台客户机上以相同的域用户身份登录,并在代码中使用相同的域用户信息

我检查了服务器端事件查看器和其他日志,以查看在服务器上处理请求的方式是否存在明显差异,并进行了大量的谷歌搜索,但没有成功

有人能给我一个线索吗?我可以在客户端机器或服务器机器上运行什么诊断程序来确定为什么会发生这种情况

谢谢你的帮助!马丁

2011-08-10 22:35:39478[10]警告-操作重新启动:异常重新启动IIS系统。反射。目标职业异常:异常已被删除 由调用的目标抛出。-->System.Runtime.InteropServices.COMException 0x80070542:未提供所需的模拟级别, 或者提供的模拟级别无效。来自HRESULT的异常:0x80070542 -内部异常堆栈跟踪的结束--
在System.DirectoryServices.DirectoryEntry.InvokeString methodName中,Object[]args

在回答自己问题的优良传统中,我学到了以下内容。我修改了我的代码以使用System.Management类,这些类在域之间似乎工作得更好。示例代码如下:

ConnectionOptions ConnectionOptions=新的ConnectionOptions

connectionOptions.Authority=ntlmdomain:+this.domain

connectionOptions.Username=this.Username; connectionOptions.Password=this.Password

connectionOptions.EnablePrivileges=true

connectionOptions.Authentication=AuthenticationLevel.PacketPrivacy

ManagementScope ManagementScope=new ManagementScope@\+this.iisserver+@\root\microsoftiisv2,连接选项

管理范围:连接

ManagementObject appPool=new ManagementObjectmanagementScope,new ManagementPathIISApplicationPool.Name='W3SVC/AppPools/+appPool+',null


appPool.InvokeMethodRecycle,null,null

在回答自己问题的优良传统中,我学到了以下几点。我修改了我的代码以使用System.Management类,这些类在域之间似乎工作得更好。示例代码如下: