Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    27

    C# Errore connessione al db SQL SERVER an attempt to attach an auto-named database for file failed

    Ho sviluppato un applicazione che carica un file .mdf sul server d'azienda, e poi i permette di aggiungere o eliminare record dal database.
    Ho usato la seguente connection string:
    string connectionString = @"Data Source=(LocalDB)\v11.0;AttachDbFilename='\\NOME-SERVER\c$\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\DB_SP.mdf ';Integrated Security=True;Connect Timeout=30";

    E qua arriva la stranezza: sul pc su cui programmo (Visual Studio 2013), il tutto funziona alla perfezione. Riesco a cancellare e aggiungere record tranquillamente (ovviamente rimangono anche salvati eh). Appena però provo a pubblicare l'applicazione, a installarla su un altro pc di azienda e farla partire ricevo questo errore:
    An attempt to attach an auto-named database for file ----percorso----. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.

    Ho già provato a:
    - Aprire la porta TCP 1433 e UDP 1434 sul server
    - Inserire User Instance = True nella stringa di connessione (che a quanto ho capito non può funzionare perché la dicitura (LocalDB)\v11.0 imposta sempre la User Instance a True)
    - Dare i permessi a file e cartelle
    - Riavviare SQL Server dal Gestore connessioni SQL Server

    Dal messaggio pare che sia già aperta da qualche parte un'istanza e che quindi il db risulti in uso, così come prova del 9 ho provato a copiare i file .mdf e di log del db. Risulato? Riesco a copiarli senza nessun problema, quindi è evidente che i file non sono in uso.

    Spero possiate aiutarmi. Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    229
    Da quel che so io i files .mdf sono di Microsoft SQL Compact Edition, ed è un tipo di database da usare SOLO in locale e non su macchine server condivise.
    Comunque sembra un problema di condivisione, infatti sei andato a mettere il tuo database su una cartella protetta e quindi non visibile dalla rete.
    Infatti la cartella "Program Files" non si dovrebbe assolutamente renderla visibile da altri PC della rete.
    Probabilmente stai provando con due versioni di Windows diverse, e quindi su una ti funziona e sull'altra no.

    Sergio

    Edit: sei sicuro di quello che hai fatto ?? Nella cartella che hai specificato tu non ci sono file MDF di Compact Edition, ma sono database di Microsoft SQL (probabilmente versione 2008), e quindi non puoi accedervi in quel modo, devi usare le chiamate per i server SQL
    Ultima modifica di SirJo; 17-09-2014 a 13:26

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    27
    Diciamo che che quando ho creato l'applicazione mi sono "ispirato" ad un programma che usiamo per la gestione delle giacenze. Una volta creato l'archivio (che era un database Access) potevo metterlo in una cartella condivisa (ne avevo creata una sul server così da poter usare il programma su più pc). Però visto che non avevo Access ho pensato di farlo con SQL Server. Posso anche provare a cambiare la cartella di destinazione, ci vuole niente a farlo, però che formato dovrei usare per i file? E soprattutto, posso evitare di ricrearmi il db da zero e quindi usare il file .mdf per crearmene uno con un altro formato? (Ovviamente se non è una tragedia usare un file .mdf non starò lì a cambiarlo, ma visto che sono abbastanza una capra in materia mi piacerebbe qualche consiglio). Grazie ^^

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    27
    Ora ho provato velocemente a creare un file con SQLite e a metterlo in una cartella condivisa (la stessa in cui c'è il file access del gestionale dell'azienza). Sul pc dal quale programmo funziona. Ovviamente sull'altro no -.- Oltretutto il messaggio d'errore è ancora più vago: "unable to open the database". Pensavo di passare a SQLite e cambiare qualche pezzetto di codice, però non riesco a venirne a capo. Ah sì, il pc sul quale non funziona ha la versione Windows 7 Starter, ma non vedo come possa influire sul funzionamento del programma.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    27
    Ho risolto. Il problema con SQLite stava nel fatto che cercava di scrivere nella cartella condivisa ma non aveva password e nome utente per farlo. Io avevo già fatto il login una volta e impostato il tutto in modo che si ricordasse le credenziali, ma sfortunatamente non Windows non le ha memorizzate... Insomma un errore idiota come al solito

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2020 vBulletin Solutions, Inc. All rights reserved.