Frage

Ich habe eine harte Zeit, eine Website auf IIS 7 unter Windows Server 2008 bereitstellen. Die Seite funktioniert gut, bis er versucht, Anrufe zu einem WCF-Dienst auf dem gleichen Host gehostet zu machen.

Alles funktioniert gut für den Service von meinem Arbeitsplatz, wenn die Bahn in Visual Studio 20008 läuft ist mit dem exakt gleichen Web-Config usw. Sobald ich die Bahn in einem virtuellen Verzeichnis auf dem Server Déployé Bam. Authentifizierungsfehler. Es funktioniert auch als ist, wenn beide auf einem Windows 2003 Server bereitgestellt werden. Was unterscheidet sich etwa Server 2008, die dies verursacht? HILFE! Bitte.

Im Fall ist es wichtig, alle Service-Operationen erfordern Active Directory-Gruppenmitgliedschaft für die ASP.net Seite authentifizierten Benutzer und sind geschmückt wie: [Principal (SecurityAction.Demand, Role = "SOAMemberShipService")]

Ich erhalte die folgende Fehlermeldung von der Webseite:

Der Antrag auf Sicherheitstoken kann nicht erfüllt werden, da die Authentifizierung fehlgeschlagen. Beschreibung: Eine nicht behandelte Ausnahme trat während der Ausführung der aktuellen Webanforderung. Überprüfen Sie die Stapelüberwachung, um weitere Informationen über den Fehler und wo es im Code verursacht.

Ausnahmedetails: System.ServiceModel.FaultException. Der Antrag auf Sicherheitstoken nicht zufrieden sein könnte, weil Authentifizierung fehlgeschlagen

Quellfehler:

Line 919:
Linie 920: public HSMembersService.MemberSearchResult SearchMembers (HSMembersService.MemberSearch MemberInfoToSearch) { Zeile 921: return base.Channel.SearchMembers (MemberInfoToSearch); Linie 922:} Linie 923:}

Quelldatei: C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Temporary ASP.NET Files \ csrweb \ a4d18657 \ a6d0910d \ App_WebReferences.jgx1svpr.0.cs Line: 921

Stack-Trace:

[FaultException. Der Antrag auf Sicherheitstoken nicht zufrieden sein könnte, weil Authentifizierung fehlgeschlagen]    System.ServiceModel.Security.SecurityUtils.ThrowIfNegotiationFault (Message Nachricht, EndpointAddress Ziel) 6375432    System.ServiceModel.Security.IssuanceTokenProviderBase`1.ThrowIfFault (Message Nachricht, EndpointAddress Ziel) 25    System.ServiceModel.Security.SspiNegotiationTokenProvider.GetNextOutgoingMessageBody (Message incoming, SspiNegotiationTokenProviderState sspiState) +173

[SecurityNegotiationException. Der Anrufer nicht vom Dienst authentifiziert wurde]    System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage (IMessage reqMsg, IMessage retMsg) 4596611    System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke (Message & MsgData, Typ Int32) 1713    HSMembersService.IHSMembersService.SearchMembers (MemberSearch MemberInfoToSearch) +0    HSMembersService.HSMembersServiceClient.SearchMembers (MemberSearch MemberInfoToSearch) in C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Temporary ASP.NET Files \ csrweb \ a4d18657 \ a6d0910d \ App_WebReferences.jgx1svpr.0.cs: 921    _default.btnSearch_Click (Object sender, EventArgse) in e: \ CSRWeb \ Default.aspx.cs: 114    System.Web.UI.WebControls.Button.OnClick (EventArgs e) +131    System.Web.UI.WebControls.Button.RaisePostBackEvent (String eventargument) +140    System.Web.UI.Page.RaisePostBackEvent (IPostBackEventHandler Sourcecontrol, String eventargument) +39    System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 3215

ASP.net Website web.config (relevanter Service-Teil):

                                                                                                            

Dienstleistungen web.config:

       

                                       

    <!-- Service Endpoints -->
    <!-- Unless fully qualified, address is relative to base address supplied above -->
    <endpoint address ="" binding="wsHttpBinding" contract="HSMembersService.IHSMembersService" bindingConfiguration="wsHttpBindingConfig">
      <!-- 
          Upon deployment, the following identity element should be removed or replaced to reflect the 
          identity under which the deployed service runs.  If removed, WCF will infer an appropriate identity 
          automatically.
      -->
      <!--<identity>
        <dns value="localhost"/>
      </identity>-->
    </endpoint>
    <!-- Metadata Endpoints -->
    <!-- The Metadata Exchange endpoint is used by the service to describe itself to clients. -->
    <!-- This endpoint does not use a secure binding and should be secured or removed before deployment -->
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
  </service>
</services>
<bindings>
  <wsHttpBinding>
    <binding name="wsHttpBindingConfig" >
      <security mode="Message">
        <message clientCredentialType="Windows" />
      </security>

    </binding>
  </wsHttpBinding>
</bindings>
<behaviors>
  <serviceBehaviors>
    <behavior name="HSMembersService.HSMembersServiceBehavior">
      <!-- To avoid disclosing metadata information, 
      set the value below to false and remove the metadata endpoint above before deployment -->
      <serviceMetadata httpGetEnabled="True"/>

      <serviceAuthorization principalPermissionMode="UseWindowsGroups"         />
      <!-- 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" /><!-- Change this before deployment -->
    </behavior>
  </serviceBehaviors>
</behaviors>

War es hilfreich?

Lösung

Okay, keine Antworten hier noch auf den MSDN-Abonnement-Gruppen.

Also, ich habe alles versucht. Und ich meine alles. Nach dem, was wie mehrere Tage schien aber in Wirklichkeit war wahrscheinlich nur 20 Stunden, es funktioniert!

Alles, was ich tat, war, den physischen Pfad der Dienste Dateien bewegen heißt .dll, .svc usw. in ein Verzeichnis von meinem c: root gegenüber dem wwwroot und es funktionierte. Ich hatte mein virtuelles Verzeichnis zu aktualisieren, um sie natürlich zu zeigen.

Warum verursacht diese Lage ein Problem? Hat IIS7.0 / Windows Server 2008 ändert etwas, das nicht Dienst nicht erlauben, von einem physischen Standort von wwwroot eingesetzt werden? Ich werde wahrscheinlich nie erfahren, weil ich nie einen anderen Dienst von dort bereitstellen wird versuchen.

I Triple-geprüft all Konten / Verzeichnisberechtigungen und die, die in dem neuen Pfad physischen in dem alten physischen Pfad zu denjenigen identisch sind, so gibt es nicht gut.

Wenn jemand herausfindet, warum oder weiß, warum. Bitte lassen Sie mich / uns wissen.

Danke,

Eddie

Andere Tipps

Es könnte im Zusammenhang mit diese .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top