【发布时间】:2011-11-12 08:46:31
【问题描述】:
在 IIS7 中使用目录服务时,我无法让调用(方法)与应用程序池一起使用。它始终返回未知名称异常。 未知名称。 (来自 HRESULT 的异常:0x80020006 (DISP_E_UNKNOWNNAME))
我可以使用 InvokeGet 命令从应用程序池中获取属性数据,但调用始终失败。就好像在 IIS6 和 IIS7 之间更改了方法名称。
代码由运行在 IIS6 的 Windows 2003 机器上的网页运行,它正在使用 IIS7.5 查询 Windows 2008 机器
这是我的代码:
string machineName = this.MYMACH.Text;
string query;
string Usrnm = GetUSRNAME(); //decrypts admin user name
string Pswd = GetPSWORD(); //decrypts admin user password
query = String.Format("IIS://{0}/w3svc/AppPools/{1}", machineName, AppPoolName);
DirectoryEntry w3svc = new DirectoryEntry(query, Usrnm, Pswd);
try
{
if (4 == (int)w3svc.InvokeGet("AppPoolState")) // <--- works
{
w3svc.Invoke("Start", null);
errormsgs.Text = string.Format("Application pool {0} retarted", btn.Text);
}
else
{
w3svc.Invoke("Recycle", null); <--- Excepts
errormsgs.Text = string.Format("Application pool {0} recycled", btn.Text);
}
}
catch (Exception eee)
{
errormsgs.Text = string.Format("Application pool {0} recycle error {1}... Query text = {2}", btn.Text, eee.Message, query);
}
我尝试了几种调用方式: w3svc.Invoke("回收", null); w3svc.Invoke("回收", object[]{}); w3svc.Invoke("回收");
它们都不起作用
有什么想法吗?
【问题讨论】:
标签: iis-7.5 invoke application-pool