2016-09-19 6 views
0

Ich arbeite derzeit an meinem allerersten WCF-Webdienst mit Hosting in IIS 8.5. Ich stoße gerade auf ein Problem.IIS WCF-Dienst wird mit Domänenbenutzeridentität heruntergefahren

Wenn ich ApplicationPoolIdentity verwende, wird der Dienst mindestens ausgeführt. Ich kann den Dienst in einem Browser überprüfen und die WSDL anzeigen. Wenn ich die Identität in IIS zu einem Domänenbenutzer ändere, wird der Dienst bei Bedarf heruntergefahren. Ich brauche es mit einigen Privilegien, da der Dienst mit unserem Active Directory funktioniert.

Mein 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> 

Ich weiß, was das Problem ist, es herunterzufahren (Identity), aber ich habe keine Ahnung, warum dies geschieht. Ich nehme an, etwas stimmt nicht mit meiner Webconfig.

Wie immer gibt es einige Einschränkungen. Der Dienst kann in das AD-Verzeichnis schreiben, sodass nur SSL zulässig ist.

+0

Ich habe gesehen, dass dies häufig passiert, wenn es ein Problem mit dem Domänenkonto gibt (normalerweise ein ungültiges Passwort). Können Sie sich mit diesem Domänenkonto bei der Ressource anmelden? – Tim

+0

@Tim Ja, das ist mein aktuelles Domänenkonto (zum Testen). Es funktioniert, wenn ich den Webservice mit IIS-Express über Visual Studio lokal betreibe, da es mit meinem aktuellen Benutzer ohne Fragen ausgeführt wird. – user3681272

Antwort

0

Ok ich bin offiziell dumm. Ich teste auf einer VM mit Windows Server, und ich bin der AD nicht beigetreten. Der Domänenbenutzer wurde nicht erkannt, daher wird der Dienst heruntergefahren. Es tut mir leid, dich mit meiner Dummheit zu belästigen.

Verwandte Themen