2011-12-21 23 views
5

Sto provando a distribuire un'applicazione asp.net a un server utilizzando un'istanza di SQL Server per il database di appartenenza ApplicationServices."La stringa di connessione specifica un'istanza di Sql Server Express locale", eccetto che non

Il problema è, sto ottenendo un errore che dice

The connection string specifies a local Sql Server Express instance using a database location within the applications App_Data directory

ho ottenuto questo errore quando ho inizialmente provato a distribuire il aspnetdb.mdf se stesso con l'applicazione.

Ho ricevuto questo errore quando ho scartato quel piano e ho deciso di eseguire una trasformazione web.config in modo che in Debug si utilizzi il database Express, ma su Rilascia la stringa di connessione passa a SQL Server.

Ho ricevuto di nuovo questo errore quando ho deciso, per curiosità, di rimuovere tutti i riferimenti al database express dal codice, quindi non c'era alcun modo possibile per cercare il database Express. Senza fortuna.

Qualcuno ha qualche idea al riguardo? Ho cancellato e reinstallato il sito Web in IIS ogni volta, notando che non è stato distribuito App_Data e che non è stato menzionato il file .mdf in web.config, senza alcun risultato. Si pensa ancora che ci sia una stringa di connessione che dice di cercare un database SQL Server Express:/

Modifica: Ecco la stringa di connessione che sto utilizzando. Piuttosto standard, penso, ma potrei sempre sbagliarmi.

Data source=HERP;Initial Catalog=DERP;Integrated Security=True 
+0

potete inserire la stringa di connessione? –

+2

Puoi mostrarci il tuo web.config? Puoi xxxx qualsiasi cosa sensibile. –

+0

Probabilmente dovresti aggiungere qualsiasi stringa di connessione da web.config (cerca 'data source =') e la parte del tuo codice che genera l'errore – Andomar

risposta

6

Potrebbe l'errore fare riferimento alla stringa di connessione predefinita dal machine.config file (il LocalSqlServer uno)? Questo potrebbe accadere, se si considera che il default membership provider uses this connection string:

The following default membership element is configured in the Machine.config file [...]:

<membership>
<providers>
<add name="AspNetSqlMembershipProvider" [...]
connectionStringName="LocalSqlServer" [...]

+0

Grazie mille - è apparentemente la stringa di connessione stavo cercando. Sono stato in grado di utilizzare una correzione immediata hacky semplicemente specificando la stringa di connessione machine.config come la mia stringa di connessione SQL Server desiderata (menzionata sopra), ma conosci il modo standard/non-hacky di correggerlo in modo che utilizzi la mia stringa di connessione e non lo LocalSqlServer? Grazie ancora, è stato un grande aiuto. – Whisker

+0

È possibile sovrascrivere qualsiasi cosa in 'machine.config' nel proprio' web.config'. Vedi http://msdn.microsoft.com/en-us/library/aa479307.aspx#configaspnet_sql_topic2: 'Il modo più semplice per far sfruttare automaticamente l'applicazione al tuo nuovo database SQL è semplicemente sostituire il valore della stringa di connessione di questo Impostazioni LocalSqlServer nel web.config locale della tua app. –

+0

Questo mi ha aiutato a capire anche il mio problema .. ha funzionato bene su una macchina, ma non sull'altra, sebbene avessero la stessa stringa di connessione. Risolve il web.config mancava il nodo . – lambinator

5

Non dimenticare di cancellare i connectionStrings prima:

<connectionStrings> 
    <clear /> 
    <add name="LocalSqlServer" connectionString="Data Source=(local);Initial Catalog=aspnetdb;Integrated Security=True" providerName="System.Data.SqlClient"/> 
</connectionStrings> 
Problemi correlati