用过ADSI编程成功配置IIS虚拟目录,且能创建应用程序,直接访问的请进。

wapit 2008-07-07 01:34:10
我现在的问题是,虚拟目录成功建立了,.NET版本也配置正确了,但是不能访问(我的程序是.NET的)。访问时总是出现“服务器应用程序不可用”的页面。在IIS管理里面将虚拟目录属性的“应用程序名”删除,再重新“创建”后,目录可以正常访问了。

查了相关资料,据说是要调用AppCreate,我已经调用了,可是没用。请大家帮我看看。谢谢!

以下为我的部分代码:

//相关变量参数部分略...

DirectoryEntry root = new DirectoryEntry(@"IIS://localhost/W3SVC");
DirectoryEntry site = (DirectoryEntry)root.Invoke("GetObject", "IIsWebServer", siteID);
DirectoryEntry webroot = (DirectoryEntry)site.Invoke("GetObject", "IIsWebVirtualDir", "root");
Console.WriteLine("正在创建虚拟目录...");

virDir = webroot.Children.Add(strName, "IIsWebVirtualDir");
virDir.Invoke("AppCreate", true);
virDir.CommitChanges();
virDir.Properties["AppIsolated"][0] = 2;
virDir.Properties["Path"][0] = strPath;
virDir.Properties["AccessFlags"][0] = 513;
virDir.Properties["FrontPageWeb"][0] = 1;
virDir.Properties["AppRoot"][0] = "LM/W3SVC/" + siteID + "/Root/" + strName;
virDir.Properties["AppFriendlyName"][0] = strName;
virDir.Properties["AccessRead"][0] = true;
virDir.Properties["AccessScript"][0] = true;
virDir.Properties["AccessWrite"][0] = false;
virDir.Properties["EnableDirBrowsing"][0] = false;
virDir.Properties["EnableDefaultDoc"][0] = true;virDir.CommitChanges();
webroot.CommitChanges();
site.CommitChanges();
...全文
134 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wapit 2008-07-07
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 Aimis 的回复:]
lz你的程序编译后能执行么?
[/Quote]

我的是写的控制台程序. 能执行. 你那个贴子的问题估计是IIS帐户的权限问题了.
Aimis 2008-07-07
  • 打赏
  • 举报
回复
lz你的程序编译后能执行么?
伴老思源 2008-07-07
  • 打赏
  • 举报
回复
^___^

来了
伴老思源 2008-07-07
  • 打赏
  • 举报
回复
virDir.Properties["AppRoot"][0] = "LM/W3SVC/" + siteID + "/Root/" + strName;
换成
virDir.Properties["AppRoot"][0] = "/LM/W3SVC/" + siteID + "/Root/" + strName;
wapit 2008-07-07
  • 打赏
  • 举报
回复
请abandonship进来接分!

谢谢!
wapit 2008-07-07
  • 打赏
  • 举报
回复
参考了http://topic.csdn.net/u/20080707/10/9e853e0a-1df0-4476-9e2f-8154012b0674.html?seed=1816688361这个贴子abandonship的回答

请abandonship进来接分!
wapit 2008-07-07
  • 打赏
  • 举报
回复
解决了. 哈哈.

virDir.Properties["AppRoot"][0] = "/LM/W3SVC/" + siteID + "/Root/" + strName;
换成:
virDir.Properties["AppRoot"][0] = "/LM/W3SVC/" + siteID + "/Root/" + strName;
就可以了.
lixueming3000 2008-07-07
  • 打赏
  • 举报
回复
帮你顶。。。。
wapit 2008-07-07
  • 打赏
  • 举报
回复
virDir.Invoke("AppCreate", true);

这句, 我换成:
virDir.Invoke("AppCreate2", 0);
virDir.Invoke("AppCreate2", 1);
virDir.Invoke("AppCreate2", 2);
都试过了. 也没用

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧