Что не так, когда вы получаете исключение конфигурации «Нераспознанный раздел конфигурации во время выполнения»

#.net #exception #configuration

Вопрос:

В частности, из этого web.config:

 <configuration>
  <configSections>
    <section name="RStrace" type="Microsoft.ReportingServices.Diagnostics.RSTraceSectionHandler,Microsoft.ReportingServices.Diagnostics" />
  </configSections>
  <system.diagnostics>
    <switches>
      <add name="DefaultTraceSwitch" value="3" />
    </switches>
  </system.diagnostics>
  <RStrace>
    <add name="FileName" value="ReportServerService_" />
    <add name="FileSizeLimitMb" value="32" />
    <add name="KeepFilesForDays" value="14" />
    <add name="Prefix" value="appdomain, tid, time" />
    <add name="TraceListeners" value="file" />
    <add name="TraceFileMode" value="unique" />
    <add name="Components" value="all:3" />
  </RStrace>
  <runtime>
    <alwaysFlowImpersonationPolicy enabled="true"/>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.ReportingServices.Interfaces"
              publicKeyToken="89845dcd8080cc91"
              culture="neutral" />
        <bindingRedirect oldVersion="8.0.242.0"
             newVersion="10.0.0.0"/>
        <bindingRedirect oldVersion="9.0.242.0"
             newVersion="10.0.0.0"/>
      </dependentAssembly>
    </assemblyBinding>
    <gcServer enabled="true" />
  </runtime>
</configuration>
 

Комментарии:

1. Вам нужно «избежать» XML (используйте ПРЕДВАРИТЕЛЬНЫЙ блок).

Ответ №1:

В моем случае я обнаружил, что machine.config файл отсутствовал. Он должен быть расположен C:WindowsMicrosoft.NETFramework64v4.0.30319Config на моей машине. machine.config.defaults В том же каталоге существовал a. Я сделал копию файла в том же каталоге и переименовал его в machine.config . Приложения после этого загружались нормально для меня.

Я обнаружил отсутствие machine.config файла с помощью средства проверки установки .NET Framework. После того, как запустил его для .В NET framework 4.7.1 отображается файл журнала, %temp% имя которого начинается с setupverifier_errors . Он содержит список файлов, которые отсутствуют и machine.config находились в верхней части списка. Если восстановление machine.config не помогло вам это исправить, возможно, стоит проверить другие файлы, перечисленные в файле журнала.

Комментарии:

1. Этот инструмент обнаружил ошибки для меня, но больше файлов отсутствовало. Обновление Windows 10 (2004 -> 20 часов 2) устранило проблему.

Ответ №2:

Вы получаете эту ошибку, когда отсутствует запись в области разделов конфигурации. В приведенном выше примере вам, вероятно, потребуется добавить строку, аналогичную этой:

 <section name="runtime" type="your-datatype"/>
 

Ответ №3:

Похоже на то .СЕТЬ была установлена с использованием корпоративной технологии переупаковки, и там были не все биты. Мы установили с оригинального образа Microsoft, и все в порядке.

Ответ №4:

Он говорит, что находит тег <runtime> в вашем файле, но не знает, что с ним делать. Возможно, он находится не в том разделе.

Поскольку <время выполнения> является стандартным элементом web.config, происходит что-то странное. Попробуйте удалить раздел трассировки. Если это сработает, восстановите раздел трассировки после раздела времени выполнения.

Комментарии:

1. Я думаю, что это может быть связано с тем, что рассматриваемый клиент «переупаковал» .NET, чтобы распространить его на корпоративные системы.