В настоящее время я работаю над своим самым первым веб-сервисом 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.
Я видел, как это происходит часто, когда есть проблема с учетной записью домена (обычно это неверный пароль). Можете ли вы войти в ресурс с этой учетной записью домена? – Tim
@Tim Да, это моя текущая учетная запись домена (для тестирования). Он работает, если я запускаю webservice локальный с помощью IIS-Express поверх Visual Studio, так как он запускает его с моим текущим пользователем без вопросов. – user3681272