大尾巴狼

所谓大尾巴狼,就是装腔作势。

关于设置IIS目录的属性问题

文件系统有这样这样的目录结构
c:\aaaa
      |---zpp
               |----zz

在IIS中,c:\aaaa作为一个虚拟站点。
由于需要,首先设置zz的某个属性,再设置zpp的相同属性。
相当于从子到父的顺序,如果从父到子则不会出错。
此时汇报错,0x80005006,属性不被支持。
原因:
设置了zz后,zz的SchemaClass是IIsWebDirectory,而zpp的是IIsObject。
所以会报出如上的错误。
解决:/Files/hilite/SetIISFolderProperty.zip
 1         public static void SetDirectoryAnonymousUser1( string virSite, string path, string userName, string userPwd )
 2         {
 3             string fullPath = virSite + "/" + path;
 4 
 5             DirectoryEntry de = new DirectoryEntry(fullPath);
 6 
18 
19         again:
20             try
21             {
22 
23                 de.Properties["AnonymousUserName"][0= userName;
24                 de.Properties["AnonymousUserPass"][0= userPwd;
25                 de.CommitChanges();
26             }
27             catch ( System.Runtime.InteropServices.COMException err )
28             {
29 
30                 if ( err.ErrorCode == -2147024893 )
31                 {
32                     //上面错误是因为,没有meta对象,可以明确创建。
33 
34                     DirectoryEntry pDE = new DirectoryEntry(virSite);
35                     de = pDE.Children.Add(path, "IIsWebDirectory");
36                     pDE.CommitChanges();
37 
38                     goto again;
39                 }
40                 if ( (err.ErrorCode == -2147463162&& (de.Properties["KeyType"].Value.ToString() == "") )
41 
                {
42                     de.Properties["KeyType"].Value = "IIsWebDirectory"
;
43 
                    de.CommitChanges();
44 
                    de.Close();
45 
                    de.RefreshCache();
46                     //de = new DirectoryEntry(fullPath);

47                     goto again;
48 
                }
49 
50 
51                 throw err;
52             }
53         }

posted on 2005-11-21 17:47  大尾巴狼  阅读(1239)  评论(0编辑  收藏  举报

导航