2016-09-19 3 views
0

В настоящее время я работаю над своим самым первым веб-сервисом WCF с хостингом в IIS 8.5. В настоящее время у меня проблема.Служба IIS WCF отключается с идентификатором домена

Если я использую ApplicationPoolIdentity, служба работает как минимум. Я могу проверить службу в браузере и посмотреть WSDL. Если я изменяю идентификатор в IIS для пользователя домена, служба отключается при запросе. Мне нужно, чтобы он работал с некоторыми привилегиями, поскольку служба работает с нашей Active Directory.

Мои WebConfig:

<?xml version="1.0"?> 
<configuration> 

    <appSettings> 
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true"/> 
    </appSettings> 
    <system.web> 
    <compilation debug="true" targetFramework="4.5"/> 
    <httpRuntime targetFramework="4.5"/> 
    <httpModules> 
     <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web"/> 
    </httpModules> 
    </system.web> 
    <system.serviceModel> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior> 
      <!-- To avoid disclosing metadata information, set the values below to false before deployment --> 
      <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/> 
      <!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information --> 
      <serviceDebug includeExceptionDetailInFaults="true"/> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <bindings> 
     <wsHttpBinding> 
     <binding name="TransportSecurity"> 
      <security mode ="Transport"> 
      <transport clientCredentialType="None"/> 
      </security> 
     </binding> 
     </wsHttpBinding> 
    </bindings> 
    <protocolMapping> 
     <add binding="basicHttpsBinding" scheme="https"/> 
    </protocolMapping>  
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/> 
    <services> 
     <service name="net.hasuma.webservices.portalx.AdfsService"> 
     <endpoint address="" contract="net.hasuma.webservices.portalx.IAdfsService" 
        bindingNamespace="net.hasuma.webservices.portalx" binding="wsHttpBinding" 
        bindingConfiguration ="TransportSecurity"/> 
     <endpoint address="mex" contract="IMetadataExchange" binding="mexHttpBinding"/> 
     </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> 
    <!-- 
     To browse web app root directory during debugging, set the value below to true. 
     Set to false before deployment to avoid disclosing web app folder information. 
     --> 
    <directoryBrowse enabled="true"/> 
    <validation validateIntegratedModeConfiguration="false"/>  
    </system.webServer> 

</configuration> 

Я знаю, что это вопрос, чтобы закрыть его (идентичность), но я понятия не имею, почему это происходит. Я полагаю, что что-то не так с моим webconfig.

Как всегда есть некоторые сдерживающие механизмы. Служба может писать в каталоге AD, поэтому разрешен только SSL.

+0

Я видел, как это происходит часто, когда есть проблема с учетной записью домена (обычно это неверный пароль). Можете ли вы войти в ресурс с этой учетной записью домена? – Tim

+0

@Tim Да, это моя текущая учетная запись домена (для тестирования). Он работает, если я запускаю webservice локальный с помощью IIS-Express поверх Visual Studio, так как он запускает его с моим текущим пользователем без вопросов. – user3681272

ответ

0

Хорошо, я официально глуп. Я тестирую VM на Windows Server, и я не присоединился к AD. Пользователь домена не знал, поэтому служба отключается. Мне жаль беспокоить вас своей глупостью.