Как получить доступ к web.config в WCF? - PullRequest
0 голосов
/ 13 мая 2011

У меня есть собственный 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, но допустил ошибку «Не является участником конфигурации», затем попытался выполнить ConfigurationSettings.AppSettings - но допустил ошибку «Метод устарел, используйте ConfigurationManager». Избыточные!

Как я могу просто сослаться на простую строку в моем файле конфигурации в WCF?

Спасибо, Jason

1 Ответ

2 голосов
/ 13 мая 2011

Я не думаю, что в файле web.config указано правильное имя файла конфигурации для службы Windows, службы с самостоятельным размещением (это было бы для службы с веб-хостингом в IIS).Попробуйте проверить значение AppDomain.CurrentDomain.SetupInformation.ConfigurationFile в коде вашего хостинга, чтобы узнать, каким должно быть имя файла конфигурации.И вызов System.Configuration.ConfigurationManager.AppSettings("ExStream_CMD_File_Path") должен работать просто отлично.

...