2

我正在创建一个 .NET Core 2.1 Web API 项目(带有 Angular 7 前端),我使用 Microsoft.Web.Administration API 从远程 IIS Web 服务器(主要列出网站、应用程序、应用程序池)中提取信息, ETC。):

https://docs.microsoft.com/en-us/dotnet/api/microsoft.web.administration?view=iis-dotnet

作为一个快速说明,这里是我如何实例化一个远程 IIS 服务器对象,一个ServerManager对象:

为了创建ServerManager对象(可以说是 IIS“容器”对象),我使用了一个隐藏的构造函数,我将远程 IIS 服务器的applicationHost.config文件路径传递给它(位于C:\Windows\System32\inetsrv\config默认位置)。我这样做是因为我在使用该ServerManager.OpenRemote(string server_ip)方法时收到与 COM 相关的问题。

无论如何,每当我尝试使用 ServerManager、Site 和 Application 的GetWebConfiguration方法来获取Web.config每个 IIS 对象的文件时,上述每个对象的GetWebConfig方法都会失败。当我运行我的代码时,该应用程序不会崩溃,但在调试器中检查对象时,会列出以下错误:

my_siteWebConfig.RootSectionGroup = 'my_siteWebConfig.RootSectionGroup' threw an exception of type 'System.IO.DirectoryNotFoundException'

看起来GetWebConfiguration代码正在一个不存在的目录中寻找站点/应用程序的web.config文件。调试器显示ConfigurationPathToEditequals "MACHINE/WEBROOT/APPHOST/my_site"。它正在查找文件所在的目录applicationHost.Config(全局 IIS 设置文件位置)。但是,我的网站和应用程序的web.config文件存储在D:\ driveat下D:\MyCompany。有没有办法让这些GetWebConfiguration方法查看配置文件的默认目录以外的applicationHost.Config目录?

抱歉,如果这有点令人困惑。感谢您的帮助,如果有不清楚的地方,请告诉我。谢谢你。

4

0 回答 0