我遇到了这个问题earlier already。这次我将我的开发环境从一个桌面移动到另一个桌面,问题又回来了。请注意,要将我的解决方案从旧环境移动到新环境,我复制了整个解决方案文件夹。在新桌面中使用相同版本的Visual Studio 2010
打开时,代码如下:
using (ServerManager serverManager = new ServerManager())
{
//Go through all the sites
for (int s = 0; s < serverManager.Sites.Count; s++) //EXCEPTION HERE!!!
{
//Do work
}
}
产生了这个例外:
GetAdminSection; GetSectionInternal; SitesSectionCreator; Initialize;
SitesCollectionCreator; Initialize; collectData.
Filename: redirection.config
Error: Cannot read configuration file
如果它在旧桌面上运行得非常好,它为什么会这样做...无论如何,我的问题:
包含Microsoft.Web.Administration
程序集引用的正确方法是什么?
我目前的做法是通过Solution
- &gt;链接到此dll。 References
- &gt; Add reference
- &gt; Browser
然后指向此文件:
C:\Windows\System32\inetsrv\Microsoft.Web.Administration.dll
我担心的是,当我的解决方案部署在那里时,会在生产机器上弹出此异常。
答案 0 :(得分:1)
是的,这是引用Microsoft.Web.Administration程序集的正确方法。
它仅适用于IIS 7.0
及更高版本。您是否安装了IIS功能(转到控制面板中的Turn Windows features on or off
向导)。
http://www.iis.net/learn/manage/scripting/how-to-use-microsoftwebadministration
这是我实例化ServerManager的方式,遇到类似于你的类似问题:
ServerManager iisManager = ServerManager.OpenRemote(Environment.MachineName.ToLower());
答案 1 :(得分:0)
使用此程序集的正确方法是在安装IIS后添加引用。所以你所做的是对的。
部署问题是不必要的,因为您始终可以创建部署包(例如MSI),因此请确保将IIS设置为先决条件,并在应用程序最终运行时存在预期的程序集。 (Microsoft确实将此程序集注册到GAC。)
关于您需要收集更多信息的例外,