从控制台应用程序访问虚拟目录

时间:2013-10-01 06:34:25

标签: c# windows-7 iis-7.5 virtual-directory

我有控制台应用程序,它将尝试访问安装在IIS(即虚拟目录)中的应用程序以获取数据库连接信息。在Windows XP(IIS 5.1)中执行此操作时,它正在工作,但它在Windows 7(IIS 7.5)中不起作用。控制台应用程序的Target .Net框架是2.0,3.5(有5个应用程序),因为它是多年前开发的。现在尝试从XP迁移到Win 7,但面临访问IIS文件夹的一些问题。 请建议在win 7中访问虚拟目录文件夹。任何代码示例都会有很多帮助。

* 错误: * System.Runtime.InteropServices.COMException(0x80070005):访问被拒绝。

1 个答案:

答案 0 :(得分:1)

查看用于访问虚拟目录的代码片段会很有用,但在更改代码之前,请检查问题是否是由安全权限引起的。如果您尝试访问与Windows 7中的虚拟目录关联的物理目录,则可能是在没有足够权限的情况下运行控制台应用程序。请尝试使用管理权限运行它。

在检查代码后,我发现您使用目录服务访问IIS 7,因此请确保在该计算机中安装了 IIS Metabase和IIS 6配置兼容性。在Windows 7中,您可以在控制面板中找到它 - >程序 - >程序和功能 - >关闭Windows功能,然后转到Internet信息服务 - >网络管理工具 - > IIS 6管理兼容性。您需要启用 IIS Metabase和IIS 6配置兼容性

中的签入

尽管如此,从代码访问和管理IIS 7的建议方法是使用 Microsoft.Web.Administration 库中提供的 IIS Management API 。您可以查看一个示例,说明如何在以下问题中执行所需的相同任务:

How to get the IIS virtual dir & web application's physical paths with C# code?