我正在创建一个 .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
文件。调试器显示ConfigurationPathToEdit
equals "MACHINE/WEBROOT/APPHOST/my_site"
。它正在查找文件所在的目录applicationHost.Config
(全局 IIS 设置文件位置)。但是,我的网站和应用程序的web.config
文件存储在D:\ drive
at下D:\MyCompany
。有没有办法让这些GetWebConfiguration
方法查看配置文件的默认目录以外的applicationHost.Config
目录?
抱歉,如果这有点令人困惑。感谢您的帮助,如果有不清楚的地方,请告诉我。谢谢你。