У меня есть веб-сервис WCF ASP.Net 4.0, который мы будем называть «WebService». WebService потребляет сборку библиотеки классов, которую мы будем называть «WebServiceClassLibrary». WebServiceClassLibrary ссылается на сборку библиотеки классов («ExternalClassLibrary»). ExternalClassLibrary построен для использования файла конфигурации. Он использует этот файл, чтобы узнать, где он должен отправлять HTTP-сообщения во время выполнения. У меня возникла проблема, где, где бы я ни находился, чтобы добавить раздел конфигурации для ExternalClassLibrary, похоже, используется настройка по умолчанию (поведение, которое я ожидал, когда он не может найти файл конфигурации во время выполнения).Где находится .Net В поисках файла конфигурации?
Я ожидаю, что это значит, что когда .Net пытается найти конфигурацию для ExternalClassLibrary, он не может этого сделать и использует информацию о конфигурации, найденную в скомпилированной сборке. Я попытался переопределить эту конфигурацию, разместив раздел конфигурации в файле web.config для WebService, создав файл конфигурации для ExternalClassLibrary и создав файл конфигурации для WebServiceClassLibrary. Даже если я попытаюсь переопределить конфигурацию в каждом из этих мест, она все равно заканчивается использованием конфигурации по умолчанию. Я размещаю сайт в IIS 7.
Может кто-нибудь, пожалуйста, скажите мне, как я могу определить, где мне нужно разместить эту переопределяющую конфигурационную информацию? Я попытался использовать монитор процессов SysInternals для просмотра попыток чтения файловой системы, но он показывает только два возможных места, чтобы переопределить конфигурацию, и ни один из них не сделал трюк.
Цените это!
- UPDATE, Вот содержимое файла XML Я пытаюсь загрузить -
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="MyAppName.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<applicationSettings>
<MyAppName.Properties.Settings>
<setting name="APIURL" serializeAs="String">
<value>http://servername/default.html</value>
</setting>
<setting name="APIAPPINI" serializeAs="String">
<value>app.ini</value>
</setting>
<setting name="ApiUrlRoot" serializeAs="String">
<value>https://www.domain.com/company[instance]test/index.htm</value>
</setting>
<setting name="ApiInstances" serializeAs="Xml">
<value>
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<string>usa</string>
<string>eu</string>
<string>asia</string>
<string>lat</string>
<string>jpn</string>
</ArrayOfString>
</value>
</setting>
<setting name="ApiKey" serializeAs="String">
<value>password</value>
</setting>
<setting name="ApiUrlRoot" serializeAs="String">
<value>http://site[instance].domain.com/</value>
</setting>
<setting name="ProductId" serializeAs="String">
<value>12345</value>
</setting>
</MyAppName.Properties.Settings>
</applicationSettings>
</configuration>
Не уверен, что это поможет, но у меня был аналогичный вопрос о файлах конфигурации для библиотек классов некоторое время назад .... http://stackoverflow.com/questions/2526202/where-are-config-files-for-class-libraries-physically-located –
Большинство сообщений на этой странице говорят о файле конфигурации, который используется из родительского или потребительского приложения. Это то, что я нашел в прошлом, но почему-то это не происходит сейчас. Кажется ненадежным. WebService - это потребляющее приложение, но добавление конфигурации в этот файл не приводит к использованию обновляемых значений. – omatase