我有一个驻留在虚拟目录中的应用程序。它的Web.config
:
<appSettings>
<add key="SomePath" value="C:\Somepath\whatever"/>
........other settings.........
</appSettings>
我有一个可在应用程序外部运行的可执行文件,需要读取此值:
System.Configuration.Configuration config =
WebConfigurationManager.OpenWebConfiguration("/MyApplicationVirtualDirectory")
as System.Configuration.Configuration;
string path = config.AppSettings.Settings["SomePath"].Value;
这会引发编译错误:
'System.Configuration.ConfigurationElement.this [System.Configuration.ConfigurationProperty]'由于其保护级别而无法访问
我认为这是有道理的,因为虚拟目录中的web.configs包含一些敏感信息,如连接字符串等,但我想检查并确保我没有做错任何事情并且我的理解是正确的。如果没有,我如何从外部可执行文件中访问此设置?
答案 0 :(得分:1)
这是一种解决问题的方法,但它是我过去做过的方式。您只需在Web应用程序中创建一个页面,该页面提供您想要的设置,然后使用HttpWebRequest访问可执行文件中的该页面。
否则是权限问题。您可以使用Web.config文件中的权限,或尝试以管理员身份运行可执行文件。