Veröffentlichen ASP.NET Projekt mit .mdf-Datenbank

Habe ich eine ASP.NET Projekt und verwendet einen lokalen .mdf-Datenbank gespeichert ist, in das App_Data-Ordner. Ich normalerweise veröffentlichen die website lokal auf meinem Desktop nehmen Sie dann alle Dateien und laden Sie Sie auf asp.net server.

nachdem das hochladen erfolgreich , für jemanden Gründen, den Zugriff auf die Datenbank ist nicht möglich.

Ich habe in meinem web.config mit der Verbindungszeichenfolge für die Datenbank

    <connectionStrings> 
    <clear />
      <add name="LocalSqlServer" connectionString="Data Source=(LocalDB)\v11.0;AttachDBFilename=|DataDirectory|database.mdf;database=database;Integrated Security=True;User Instance=False;Context Connection=False;" providerName="System.Data.SqlClient"/>  
      </connectionStrings>

nicht, dass ich gesehen habe paar online-Lösung, die Angaben ändern LocalDB)\v11.0 .\SQLEXPRESS; in der Verbindungszeichenfolge aber das wird nicht funktionieren.

Bitte raten, wie richtig das hochladen der Datenbank mit dem Projekt, und legen Sie den richtigen Zugriff auf es.

wenn ich versuche zu öffnen, die Datenbank-Verbindung, bekomme ich die folgende Fehlermeldung

System.Sicherheit.SecurityException: Fehler bei der Anfrage. System.Sicherheit.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) bei System.Sicherheit.CodeAccessSecurityEngine.Check(PermissionSet permSet, StackCrawlMark& stackMark) bei System.Sicherheit.PermissionSet.Demand() bei
System.Daten.LocalDBAPI.DemandLocalDBPermissions() bei System.Daten.LocalDBAPI.CreateLocalDBInstance(String-Instanz) bei System.Daten.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean verschlüsseln, Boolean trustServerCert, Boolean integratedSecurity, Boolean withFailover) bei System.Daten.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover) bei System.Daten.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential Berechtigung, TimeoutTimer timeout) bei System.Daten.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential Berechtigung, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance) bei System.Daten.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity Identität, SqlConnectionString connectionOptions, SqlCredential Berechtigung, Objekt providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions) bei System.Daten.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions Optionen, DbConnectionPoolKey poolKey, Objekt poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) bei System.Daten.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnectionOptions Optionen, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) bei System.Daten.ProviderBase.DbConnectionPool.CreateObject(DbConnectionOptions userOptions) bei System.Daten.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnectionOptions userOptions) bei System.Daten.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) bei System.Daten.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource1 wiederholen, DbConnectionOptions userOptions, DbConnectionInternal& connection) bei System.Daten.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource1 retry) bei System.Daten.SqlClient.SqlConnection.Open() auf der Datenbank.establishConnection() die Aktion, Die gescheitert ist: Demand Der Typ der ersten Berechtigung, der Fehler war: System.Sicherheit.PermissionSet Die Zone der assembly, die gescheitert ist: MyComputer

  • Was meinst du mit "Zugriff auf die Datenbank ist nicht möglich"? Gibt es eine Fehlermeldung?
  • die Fehlermeldung ist oben.
  • Ich weiß, mit SQL Server benötigen Sie für den Zugriff auf das ASPNET-Benutzerkonto. Können Sie das tun, simarly mit Access? Ich bin nicht so vertraut mit access, aber sobald der Bereitstellung Ihrer Windows-Konto nicht mehr verwendet wird, mit der Integrierten Sicherheit. Es muss das ASPNET-Benutzerkonto.
  • hi Matt, nicht verstehen, was Sie sagte !
  • Sie haben Integrated Security=True in der Verbindungszeichenfolge festgelegt, was bedeutet, dass Ihre web-Anwendung benötigt werden, werden unter demselben Konto ausgeführt wird, die Zugriff auf die Datenbank. Wenn dies ist ein shared host, das ist wahrscheinlich nicht der Fall, da der web-server würde nicht laufen mit Ihren Anmeldedaten an. Sie brauchen, um zu untersuchen, welche Optionen für Datenbanken Ihr host bietet, und nutzen Sie eines Ihrer Angebote.
  • Prüfen, welche Benutzer der web-Anwendung. (IIS - Eigenschaften des application-pool) Danach stellen Sie sicher, dass dieser Benutzer Schreibrechte für den Ordner/die Datenbank-Datei.
  • Ich denke, dass gleiche passiert hier... stackoverflow.com/a/4763950/3156647

Schreibe einen Kommentar