从控制台应用程序打开web.config?

Jos*_*osh 23 asp.net web-config

我有一个控制台capplication,它运行在托管一堆web.config文件的同一台计算机上.我需要控制台应用程序打开每个web.config文件并解密连接字符串,然后测试连接字符串是否有效.

我遇到的问题是OpenExeConfiguration期望winforms应用程序配置文件(app.dll.config)和OpenWebConfiguration需要通过IIS运行.由于这是我的本地机器,我没有运行IIS(我使用Visual Studio的内置服务器).

有没有办法可以打开web.config文件,同时还能获得.NET解密连接字符串的强大功能?

谢谢

更新 如果您直接查询IIS或者您想要查找web.config的网站,OpenWebConfiguration可以正常工作.我想要完成的是同样的功能,但是从控制台应用程序打开同一台机器上的网站的web.config文件而不是使用IIS查询,因为IIS没有在我的机器上运行.

Jef*_*tin 38

好的我得到了...编译并访问了这个我知道它有效...

      VirtualDirectoryMapping vdm = new VirtualDirectoryMapping(@"C:\test", true);
            WebConfigurationFileMap wcfm = new WebConfigurationFileMap();
            wcfm.VirtualDirectories.Add("/", vdm);


            // Get the Web application configuration object.
            Configuration config = WebConfigurationManager.OpenMappedWebConfiguration(wcfm, "/");

            ProtectSection(config, @"connectionStrings", "DataProtectionConfigurationProvider");
Run Code Online (Sandbox Code Playgroud)

假设您在名为C:\ Test的目录中有一个名为web.config的文件.

我调整了@ Dillie-O的方法,将Configuration作为参数.

您还必须引用System.Web和System.configuration以及包含在web.config中设置的配置处理程序的任何dll.