2011-12-21 17 views
5

Estoy intentando implementar una aplicación asp.net en un servidor utilizando una instancia de SQL Server para la base de datos de membresía ApplicationServices."La cadena de conexión especifica una instancia Sql Server Express local", Excepto que no

El problema es que estoy recibiendo un error que dice

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

Tengo este error al principio traté de implementar el aspnetdb.mdf sí con la aplicación.

Recibí este error cuando descarté ese plan y decidí hacer una transformación web.config para que en Debug use la base de datos Express, pero en Release la cadena de conexión va a SQL Server.

Recibí este error nuevamente cuando decidí por curiosidad eliminar todas las referencias a la base de datos express del código, por lo que no había forma posible de que algo buscara la base de datos Express. Sin suerte.

¿Alguien tiene alguna idea al respecto? He eliminado y vuelto a instalar el sitio web en IIS cada vez, y he notado que no se está implementando App_Data y que no se menciona el archivo .mdf en web.config, pero no ha sido posible. Todavía cree que hay una cadena de conexión diciéndole que busque una base de datos SQL Server Express:/

Edit: Aquí está la cadena de conexión que estoy usando. Bastante estándar, creo, pero siempre podría estar equivocado.

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

¿Se puede publicar la cadena de conexión? –

+2

¿Puede mostrarnos su web.config? Puedes borrar cualquier cosa sensible. –

+0

Probablemente debería agregar cualquier cadena de conexión desde web.config (busque 'data source =') y la parte de su código que genera el error – Andomar

Respuesta

6

podría referirse al error a la cadena de conexión por defecto de la machine.config archivo (el LocalSqlServer uno)? Esto podría estar sucediendo, teniendo en cuenta que el 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

Muchas gracias, aparentemente es la cadena de conexión estaba buscando. Pude utilizar un arreglo instantáneo hacky simplemente especificando la cadena de conexión machine.config como la cadena de conexión deseada de SQL Server (mencionada anteriormente), pero ¿conoces la forma estándar/no hacky de corregir esto para que use mi cadena de conexión? y no el LocalSqlServer uno? Gracias de nuevo, fue una gran ayuda. – Whisker

+0

Puede anular cualquier cosa en 'machine.config' en su propio' web.config'. Consulte http://msdn.microsoft.com/en-us/library/aa479307.aspx#configaspnet_sql_topic2: 'La forma más fácil de que su aplicación aproveche automáticamente su base de datos SQL recién creada es simplemente reemplazar el valor de la cadena de conexión de este Configuración de LocalSqlServer en el web.config local de su aplicación. –

+0

Esto me ayudó a resolver mi problema también ... funcionó bien en una máquina, pero no en la otra, aunque tenían la misma cadena de conexión. Resulta la web.config faltaba el nodo . – lambinator

5

No se olvide de limpiar las connectionStrings primera:

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