Произошла ошибка при создании раздела конфигурации - Обнаружен дубликат элемента конфигурации '<identityConfiguation>' - PullRequest
0 голосов
/ 26 июня 2018

При попытке перейти к службе, которую мы создали и установили, появляется следующее сообщение об ошибке:

Произошла ошибка при создании обработчика раздела конфигурации для system.identityModel: ID7029: Дублируйте «identityConfiguation»Элемент конфигурации с именем '' был найден в разделе конфигурации 'system.identityModel'.

Line 74:     <validation validateIntegratedModeConfiguration="false" />
Line 75:   </system.webServer>
**Line 76:   <system.identityModel>**
Line 77:     <identityConfiguration name="">
Line 78:       <claimsAuthenticationManager type="Sage.IdentityModel.Claims.Sage200.WCFServiceClaimsAuthenticationManager, Sage.IdentityModel.Claims.Sage200" />

Вот используемый файл web.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="system.identityModel" type="System.IdentityModel.Configuration.SystemIdentityModelSection, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=***"/>
    <section name="system.identityModel.services" type="System.IdentityModel.Services.Configuration.SystemIdentityModelServicesSection, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=***"/>
    <section name="sage.identityModel.tokens.sageID" type="Sage.IdentityModel.Tokens.SageID.Configuration.ModuleConfigurationSection, Sage.IdentityModel.Tokens.SageID"/>
  </configSections>

  <appSettings>
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />

    <add key="credentialsFile" value="c:\sage\logon\credentials.xml" />
    <add key="Sage200SiteLogonPath" value="c:\Sage\Logon" />
    <add key="ServerRootPath" value="C:\Sage" />
    <add key="SystemAdministration" value="Local" />
    <add key="Sage200Path" value="C:\inetpub\Sage 200 App Services\Sage200Services\Bin\" />
  </appSettings>

  <system.web>
    <compilation targetFramework="4.0" />
    <trust level="Full" />
  </system.web>

  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior name="DefaultAuthorizationBehavior">
          <serviceThrottling
                        maxConcurrentCalls="16"
                        maxConcurrentSessions="20"
                        maxConcurrentInstances="16" />
          <serviceMetadata httpGetEnabled="false" />
          <serviceDebug includeExceptionDetailInFaults="true" />
          <serviceAuthorization principalPermissionMode ="Always" />
          <serviceCredentials useIdentityConfiguration="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>

    <protocolMapping>
      <add binding="basicHttpsBinding" scheme="https"/>
    </protocolMapping>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/>

    <bindings>
      <basicHttpBinding>
        <binding name="SecureHttpBinding"
                 maxBufferPoolSize="104857600"
                 maxReceivedMessageSize="104857600"
                 maxBufferSize="104857600"
                 transferMode="Buffered">
          <security mode="Transport">
            <transport clientCredentialType ="Windows" />
          </security>
          <readerQuotas maxDepth="32"
                        maxStringContentLength="104857600"
                        maxArrayLength="104857600"
                        maxBytesPerRead="4096"
                        maxNameTableCharCount="16384"/>
        </binding>
      </basicHttpBinding>
    </bindings>

    <services>
      <service name="SageWebService.Service1"
               behaviorConfiguration="DefaultAuthorizationBehavior">
        <endpoint address="https://SERVERNAME:PORT/SageWebService/Service1.svc"
                  binding="basicHttpBinding"
                  bindingConfiguration="SecureHttpBinding"
                  contract="SageWebService.IService1"
                  listenUri="/" />
      </service>
    </services>
  </system.serviceModel>

  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
      <remove name="ApplicationInsightsWebTracking"/>
      <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web"
           preCondition="managedHandler"/>
    </modules>
    <directoryBrowse enabled="true"/>
    <validation validateIntegratedModeConfiguration="false"/>
  </system.webServer>

  <system.identityModel>
    <identityConfiguration>
      <claimsAuthenticationManager type="Sage.IdentityModel.Claims.Sage200.WCFServiceClaimsAuthenticationManager, Sage.IdentityModel.Claims.Sage200"/>
      <claimsAuthorizationManager type="Sage.IdentityModel.Claims.Sage200.WCFServiceThirdPartyClaimsAuthorizationManager, Sage.IdentityModel.Claims.Sage200"/>
    </identityConfiguration>
  </system.identityModel>

  <system.diagnostics>
    <sources>
      <source name="System.ServiceModel" switchValue="Information, ActivityTracing" propagateActivity="true">
        <listeners>
          <add name="traceListener" type="System.Diagnostics.XmlWriterTraceListener" initializeData="C:\log\Traces.svclog" />
        </listeners>
      </source>
    </sources>
  </system.diagnostics>
</configuration>

Iбольше нигде не видно, что определяет раздел конфигурации идентификации в этой конфигурации или файл machine.config на сервере.Я попытался дать уникальное имя разделу конфигурации идентификации, но проблема все еще возникает.

Пул приложений использует .net v4.0, а служба нацелена на v4.5.2

Есть лигде-нибудь я должен искать это, или ошибка означает, что что-то не так?

Спасибо,

1 Ответ

0 голосов
/ 06 июля 2018

Для тех, кто может увидеть это в будущем, я обошел эту проблему, обновив раздел Identity Model:

<system.identityModel>
    <remove name="SageIdentity"/>
    <identityConfiguration name="SageIdentity">
      <claimsAuthenticationManager type="Sage.IdentityModel.Claims.Sage200.WCFServiceClaimsAuthenticationManager, Sage.IdentityModel.Claims.Sage200" />
      <claimsAuthorizationManager type="Sage.IdentityModel.Claims.Sage200.WCFServiceThirdPartyClaimsAuthorizationManager, Sage.IdentityModel.Claims.Sage200" />
    </identityConfiguration>
  </system.identityModel>
...