IIS AppCreate子目录的错误(0x80020006)

      这几天做了升级用的安装包,需要在原来的ASP 的虚拟目录下,再创建一个新的ASPNet 虚拟目录。上网查了C# iis设定的资料,按照上面一路做下来,还是无法成功过。
      代码只有两行,如下:
      DirectoryEntry siteVDir = new DirectoryEntry("IIS://localhost/W3SVC/1/ROOT/原来的项目/AspNet目录");
      siteVDir.Invoke("AppCreate",true); //报 Unknown name. (Exception from HRESULT: 0x80020006 (DISP_E_UNKNOWNNAME))
siteVDir.CommitChange();


查了很多资料,都没有结果。后来发现,如果用IIS,首先把ASPNet目录Create Application,然后Remove,上面
的代码就能够正常。

然后用查看一下siteVDir.SchemaClassName,发现运来是IISObject,msdn上说这个IISObject是没有方法。

代码
DirectoryEntry siteVDir =   new DirectoryEntry(path);
foreach (var site in siteVDir.Children)
{
    var siteV
= (DirectoryEntry)site;
   
if (siteV.Name ==   " ASPNet目录 " )
    {
      siteV.Properties[
" AppFriendlyName " ].Value =   " 虚拟目录名 " ;
      siteV.Invoke(
" AppCreate " , true );
      siteV.CommitChanges();
     
break ;
    }
}

 

最后的解决办法是,首先获取父,然后列举Children,返现是AspNet目录就调用 AppCreate。修正后的代码如下:

 

    

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值