Ho un attore che dopo aver ricevuto una richiesta da un progetto WebAPI, l'attore interroga una tabella utilizzando Entity Framework 6.Utilizzando LocalDB con Service Fabric
using (var context = new MetadataContext())
{
var userStorageAccountId = context.Set<UsersToStorageAccounts>()
.Find(userId).StorageAccountId;
}
Il DB è stata con successo creata usando "Add-migrazione ".. 'Update-Database' comandi, e ha la seguente stringa di connessione:
@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFileName=C:\Users\xxxx\Metadata.mdf;Connect Timeout=30;Initial Catalog=Metadata;Integrated Security=True;"
quando faccio funzionare il servizio di tessuto e l'attore cerca di accedere al contesto, ottengo la seguente eccezione:
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 50 - Local Database Runtime error occurred. Cannot create an automatic instance. See the Windows Application event log for error details.)
e l'errore di Visualizzatore eventi è:
Cannot get a local application data path. Most probably a user profile is not loaded. If LocalDB is executed under IIS, make sure that profile loading is enabled for the current user.
ho cercato un modo per caricare il profilo dell'utente, ma ho trovato solo soluzioni per IIS.
Si prega di aiutare :)
L'intero scopo dell'utilizzo di Service Fabric è una facile implementazione senza preoccuparsi del server. LocalDB (un database in-process che memorizza i dati localmente) significa che vuoi realmente * modificare * il server e legarti ad esso, dato che non sarai in grado di spostarti su un altro computer senza perdere i tuoi dati. Inoltre, il codice utilizza un percorso DB che punta a una cartella utente specifica –
@PanagiotisKanavos Il LocalDB viene utilizzato solo per il debug. Se il fabric di servizio viene eseguito in un ambiente di sviluppo, viene utilizzato LocalDB e, se viene eseguito in prod, viene utilizzato un server mssql db. Non riesco a farlo funzionare localmente, a scopo di debug. – shlatchz
Non usarlo allora. Service Fabric * non eseguirà * sotto il tuo account nemmeno localmente, quindi * non * può accedere alla tua directory utente. In effetti, l'errore suggerisce che Service Fabric viene eseguito con un account che non consente il caricamento del profilo, ovvero che non ha alcun profilo ovvero nessuna directory utente. * Perché * utilizzare LocalDB affatto, invece di un'installazione locale di SQL Server?Dev edition è gratuito –