zoukankan      html  css  js  c++  java
  • 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。修正后的代码如下:

         

     
  • 相关阅读:
    Nim教程【七】
    Nim教程【六】
    博客园博客撰写工具【开源】(可以直接黏贴图片)
    Nim教程【五】
    Nim教程【四】
    Nim教程【三】
    Nim教程【二】
    Nim教程【一】
    开发人员面试题目分享(来看看不一样的面试题吧)【第二弹】
    基于.net开发chrome核心浏览器【七】
  • 原文地址:https://www.cnblogs.com/fantasylu/p/1540159.html
Copyright © 2011-2022 走看看