【问题标题】:How to access web.config in a WCF?如何在 WCF 中访问 web.config?
【发布时间】:2011-08-24 12:24:58
【问题描述】:

我有一个自托管的 WCF(作为 Windows 服务),它有一个 web.config 文件。

在其中一个函数中,我有这段代码(似乎不起作用):

Shell(System.Configuration.ConfigurationManager.AppSettings("ExStream_CMD_File_Path"), AppWinStyle.NormalFocus)

web.config 如下所示:

<configuration>
<configSections>
    <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
        <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
            <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
            <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
                <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
                <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
                <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
                <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
            </sectionGroup>
        </sectionGroup>
    </sectionGroup>
</configSections>
  <appSettings>
<add key="ExStream_CMD_File_Path" value="C:\HelloWorld.cmd"/>
  </appSettings>
<connectionStrings/>
<system.web>
...

出于某种原因,它不会去。因此,我尝试在控制台应用程序及其 app.config 中引用我的应用程序设置。尝试使用 ConfigurationManager.AppSettings 读取它,但错误“不是 Configuration 的成员”,然后尝试 ConfigurationSettings.AppSettings - 但错误“方法已过时,请使用 ConfigurationManager”。冗余!

如何在 WCF 的配置文件中引用一个简单的字符串?

谢谢, 杰森

【问题讨论】:

    标签: vb.net wcf configuration app-config


    【解决方案1】:

    我认为 web.config 没有正确的 Windows 服务、自托管服务的配置文件名(它适用于 IIS 中的网络托管服务)。尝试在您的托管代码上检查AppDomain.CurrentDomain.SetupInformation.ConfigurationFile 的值,这将告诉您配置文件的名称应该是什么。并且调用 System.Configuration.ConfigurationManager.AppSettings("ExStream_CMD_File_Path") 应该可以正常工作。

    【讨论】:

    • 谢谢,那是票。我从 IIS 托管的项目中添加了 WFC,并将密钥放在旧 WCF 附带的 web.config 中。忘了把它放在新服务的 app.config 中。谢谢!!
    猜你喜欢
    • 2012-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-31
    • 1970-01-01
    • 2015-01-23
    • 2020-07-27
    • 1970-01-01
    相关资源
    最近更新 更多