目的是通过一个程序来自动创建不同服务器上IIS的站点和应用程序池。
我用的环境是 Win2003 Server  .NET Framework 2.0 在本机操作都没有问题,但是访问其他机器时遇到了奇怪的几个问题:前提:已经具有其他机器的管理员账户信息1、创建应用程序池时提示“拒绝访问”。2、主目录其实也是个虚拟目录,只不过是“应用程序”类型的虚拟目录。在本机执行都没有问题,但是一旦通过网络访问其他机器,我可以创建站点、虚拟目录,但是创建不了“应用程序”。我通过以下代码来创建:
DirectoryEntry rootDirectory;
rootDirectory = new DirectoryEntry(@"IIS://" + this.MachineName + @"/W3SVC", "管理员账户", "管理员密码");DirectoryEntry childVirtualEntry = rootDirectory.Children.Add(Name, "IIsWebVirtualDir");//主目录应该创建为“应用程序”目录,而不是“虚拟目录”
if (Name.ToUpper() == "ROOT")
{
    //配置这2个属性会让虚拟目录变成应用程序
    childVirtualEntry.Properties["AppIsolated"][0] = 2;
    childVirtualEntry.Invoke("AppCreate",true);      //执行这句的时候会报“未知名称”错误,在本机执行不会报错
                    
    childVirtualEntry.Properties["AppFriendlyName"][0] = "Default Application";
}childVirtualEntry.CommitChanges();
估计这些都是权限问题,我也试过几个方法,比如添加DCOM操作权限等,都不管用。我在想,既然IIS管理器可以通过管理员账户远程登录操作,没理由程序不行呀。跪求达人解惑。

解决方案 »

  1.   

    另外,补充一下,我的win2003 server的IIS版本是6我用win2008 server 测试结果是一样的,IIS是版本7win7 也是这样但是在IIS7 中,主目录是虚拟目录不是应用程序时,可以运行asp程序但是在IIS6 中不行,虚拟目录不能运行asp程序,一定要把主目录配置成“应用程序”才正常
      

  2.   

    事件查看器里面找不到相关的信息我用IIS管理器连接的时候 也就是用的管理员账户和密码 程序用相同的账户 怎么就不行呢
      

  3.   

    你的程序是asp.net还是winform?
    很奇怪,有些操作可以,有些操作不可以。看看这篇文章有没有帮助
    http://stackoverflow.com/questions/637090/access-denied-when-trying-to-connect-to-remote-iis-server-c-sharp
      

  4.   

    我是winform的  是想做个工具正在看,谢谢
      

  5.   

    我做过webForm的,牵涉到身份模拟impersonation,没做过winform,但我想winform就更没问题了。
    由于WMI接口太简陋了,我用的是ADSI操纵IIS。