2012-01-05 8 views
6

Attualmente sto creando un progetto di applicazione Web in Visual Studio 2010 e, fino a poco tempo fa, non ho avuto bisogno di utilizzare il codice scaffolded per soci, utenti e ruoli ecc. memorizzato nel file di database ASPNETDB.mdf. Ho eseguito il progetto su Visual Studio Web Server, IIS Express (da Visual Studio) e anche su IIS7.5 senza problemi.Tentativo di collegare un database con nome automatico per il file .mdf non riuscito

Tuttavia, ora ho bisogno di incorporare Gli account utente e quando uso il codice di ponteggi per il login, ottengo un errore del server affermando:

Un tentativo di collegare un database di auto-nome per il file C: \ Utenti \ Utente \ Documenti \ COMP6059 \ PomumV2 \ PomumV2 \ App_Data \ aspnetdb.mdf non riuscito. Esiste un database con lo stesso nome oppure il file specificato non può essere aperto oppure si trova nella condivisione UNC.

Questo errore si verifica solo quando si utilizza il server Web IIS Express o IIS7.5. Il server Web di Visual Studio funziona correttamente.

Ho seguito le istruzioni da http://support.microsoft.com/?kbid=2002980 inutilmente.

Qui di seguito è la mia stringa di connessione per il database:

<add name="ApplicationServices" 
    connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" 
    providerName="System.Data.SqlClient" /> 

L'errore si verifica nella seguente riga del file AccountController.cs (che viene generato automaticamente)

... if (Membership.ValidateUser(model.UserName, model.Password)) { ... 

ho letto da qualche parte che Potrei aver bisogno di spostare il database in SQL Server Management Studio e quindi collegare Visual Studio tramite questo, ma non ero in grado di accedere al database.

Voglio che sia in grado di funzionare su IIS7.5. Qualcuno ha qualche idea su come risolvere questo problema?

risposta

3

Questo è potenzialmente un problema con l'account in cui IIS è in esecuzione non avendo accesso a tale file.

Assegnare autorizzazioni complete a quella cartella per l'account Servizio di rete.

È possibile provare temporaneamente "tutti" e vedere se risolve il problema e tornare indietro da lì.

garantire anche la sua non è in uso da un altro server web (Process Explorer/Sysinternals può aiutare a che mostrano)

+0

I gruppi Everyone e il SERVIZIO DI RETE hanno il controllo completo sulla directory App_Data ma continuano a ottenere la stessa cosa. Abbastanza sicuro che non venga utilizzato da nessun altro server web. Ottenuto il process explorer, ma non sono sicuro di cosa sto cercando. – Mabbage

+0

cerca il nome db in Process Explorer e se è in uso mostrerà il processo che lo ha aperto. potrebbe essere aperto in Visual Studio, il server Web VS potrebbe ancora tenere premuto, ecc. –

+0

Ho dato il "pieno controllo" al SERVIZIO DI RETE sulla mia intera cartella Documenti e questo sembra aver risolto il problema precedente. Mi viene ora presentato un altro errore relativo a "accesso non riuscito per NT AUTHORITY \ NETWORK SERVER", ma si porrà come un'altra domanda in quanto sembra un problema sufficientemente distinto. – Mabbage

1

verifica che la cartella non è di sola lettura. Lavora per me

0

Sembra che il PO ha risolto il problema, ma ho pensato che il tagging pena sulla mia soluzione in quanto può aiutare gli altri in futuro .....

Ho avuto un problema simile in cui l'LocalDB andato in apparente modalità "Sola lettura" sul server live, ma ha funzionato bene sul mio portatile locale di sviluppo.

Dopo aver letto numerosi post in questo modo e aver provato tutto quello che riuscivo a trovare, non funzionava ancora.

Per caso sono entrato in IIS sul server live e ho notato che c'erano 3 connessioni di database identificate. 2 sono stati ereditati - non so da dove viene - e il terzo è stato dichiarato localmente (ad esempio nel sito web.config).

Ho eliminato le 2 connessioni ereditate e, voilà! Ora funziona bene.

0

Questo problema si verificava dopo la migrazione da VS2013 a VS2015 Community, mentre si tentava di aprire il file .mdf del database del progetto dalla cartella Visual Studio 2013. Quindi ho copiato il progetto con il file di database nella cartella di Visual Studio 2015 appena creata e il problema è stato risolto.

Problemi correlati