Я пытаюсь получить мою страницу .aspx для чтения из файла web.config. Код, который работает на других серверах, не работает должным образом на одном конкретном сервере (все задействованные машины - W2K3 R2 SP2).ASP.NET не пытается открыть файл web.config?
Отрывок из .aspx является
<body>
<form id="form1" runat="server">
<div>
<asp:Label runat="server" Text="" ID="lblTime" /><br />
Value of myConfigTest is '<asp:Label ID="lblValue" runat="server" Text=""/>'
</div>
</form>
</body>
Код здесь:
using System;
using System.Web.Configuration;
namespace configTestWeb
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
lblTime.Text = DateTime.Now.ToLongTimeString();
string value = WebConfigurationManager.AppSettings["myConfigTest"];
lblValue.Text = value;
}
}
}
И мой файл web.config установлен таким образом:
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="myConfigTest" value="This is a test"/>
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
</configuration>
В попытке для устранения неполадок я настраиваю ProcMon для фильтрации на web.config и удаляю страницу из браузера. Выход
1:06:04 PM
Значение myConfigTest является «»
Но действительно странно, что ProcMon никогда не сообщает о попытке доступа к файлу! Если я щелкнул правой кнопкой мыши по виртуальному каталогу в IIS и выберите «Свойства | ASP.NET | Редактирование конфигурации Я могу видеть, как web.config получает доступ к ~ 65 записям в ProcMon, а appSetting сообщается правильно в диалоговом окне настроек конфигурации ASP.NET.
Я считаю, что я исключил ACL как проблему
a) Настройка всего дерева каталогов, в котором находятся .aspx и web.config для всех | Полные разрешения
b) ProcMon сообщит о неудачных попытках открыть файл, если были разрешены проблемы
В отчаянии я удалил/переустановил ASP.NET 4.0.
Возможно отметить, что чтение конфигурации из EXE-файл прекрасно работает на сервере с помощью
string value = System.Configuration.ConfigurationManager.AppSettings[key];
Эта проблема появляется через несколько виртуальных каталогов.
Так что мой вопрос в том, что может помешать тому, чтобы этот сервер мог читать файлы web.config?
Не пробовал это - но я думаю, что 'web.config' читается при запуске процесса веб-приложения (' aspnet_wp.exe' в 2k3/IIS6, я думаю), а затем кэшируется приложением, поэтому вы выиграли После этого ProcMon получает доступ к нему. Чтобы проверить: убейте процесс веб-приложения и перезагрузите браузер, чтобы заставить его перезагрузиться. – nothingisnecessary
@nothingisnecessary: хороший вызов, файл .config считывается при запуске приложения. Я вижу, что мой файл читается, но я все еще не получаю ожидаемое значение из файла. – h0meBrewer