Announcement

Collapse
No announcement yet.

Wie ASP.Net 2.0 -Site auf anderen Computer kopieren?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wie ASP.Net 2.0 -Site auf anderen Computer kopieren?

    Ich habe eine Intranetanwendung mit ASP.net 2.0 und SQLExpress. Zum Anmelden verwende ich Formsauthentication mit Role-Provider , die User kommen aus der standardmäßigen aspnetdb.mdf im App_Data-Verzeichnis der Website.

    Ich muss jetzt die ganze Site auf einen neuen Computer umsiedeln, wobei sich netzwerkseitig gar nichts ändert (also gleiche IP, User, Domäne). Wenn ich das Site-Verzeichnis aus dem c:\wwwroot\inetpub\meineSite in das selbe Verzeichnis auf den neuen Computer kopiere und daraus im IIS ein virtuelles Verzeichnis mache, kann ich die Anwendung starten, komme zur Eingabemaske und bekomme dann die Exception, dass der user computername/ASPNET sich nicht anmelden kann.
    Wie macht man das normalerweise? Ich möchte verstehen, woher die ganzen Schikanen kommen. Dateisystemmäßig habe ich die aspntdb.mdf und -.ldf schon für den user computername/ASPNET auf Vollzugriff gestellt, aber ohne Erfolg.

    Bitte um Hilfe, Danke

  • #2
    Hallo,

    ...dass der user computername/ASPNET sich nicht anmelden kann
    dieses Veto hat nichts mit den Betriebssystem- bzw. NTFS-Rechten zu tun, sondern kommt statt dessen vom MS SQL Server. Wenn ein Benutzer (wie der Arbeitsprozess von ASP.NET unter dem Benutzerkonto ASPNET) auf eine Datenbank zugreifen will, benötigt werden mehrere Rechte:
    1. Das Benutzerkonto muss ein SQL Server-Benutzer sein.
    2. Das Benutzerkonto muss Zugriffsrechte auf die benötigte Datenbank haben.


    Wenn das .NET Framework installiert wird, richtet das Setup für ASP.NET ein lokales Benutzerkonto mit der Syntax Rechnername\ASPNET ein. Im Verzeichnis C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONF IG legt die Konfigurationsdatei machine.config über den processModel-Eintrag fest, welches Benutzerkonto für den Hostprozess von ASP.NET verwendet wird. Greift die ASP.NET-Anwendung zur Laufzeit über die integrierte Windowsauthentifizierung auf die MS SQL Server-Datenbank zu, muss für das ASPNET-Benutzer*konto sowohl das SQL Server-Login eingerichtet als auch die Zugriffsrechte auf die Datenbank konfiguriert werden. Im Fall des MS SQL Server 2000/2005 kann dies über die folgende Stapelanweisung erledigt werden:

    Code:
    EXEC sp_grantlogin 'Rechnername\ASPNET' 
    go 
    EXEC sp_defaultdb 'Rechnername\ASPNET', 'Testdatenbank' 
    go  
    EXEC sp_grantdbaccess 'Rechnername\ASPNET' 
    go
    Wenn das Benutzerkonto automatisch alle Rechte an den Datenbankobjekten haben soll, kann dieses der Server-Rolle db_owner zugewiesen werden:

    Code:
    EXEC sp_addrolemember 'db_owner', 'Rechnername\ASPNET' 
    go
    Im Fall einer Webanwendung ist es jedoch sicherer, die Rechte explizit über GRANT-Aufrufe zu erteilen.

    Comment


    • #3
      Danke Andreas,
      ich denke meine Probleme kommen daher, dass der neue Ziel-Computer nicht in der Domäne hängt. So gibt es auf beiden (Quell- und Zielsystem) den Benutzer Computername\ASPNET, und auf beiden habe ich den Zugriff so vergeben, wie du es auch oben angeführt hast. Trotzdem ging es nicht, da die User unterschiedlich sind, auch wenn sie gleich heissen. Ich habe den Zielcomputer jetzt in der Domäne installiert und alles geht wieder.

      Danke

      Comment

      Working...
      X