ConnectionString en el web.config (.NET)

LLoid

Buenas señores, os comento el asunto:

Estoy desarrollando unos servicios web en .NET para consumirlos con una app android (soap) y hasta hace no mucho la cosa funcionaba bastante bien, pero estaba utilizando IIS express y este no deja sacarlo al exterior (sólo puedes consumir desde localhost) por lo que hice el cambio a IIS y ahora no hay manera de invocar un servicio web, me da una excepción tal que:

System.Data.Entity.Core.EntityException: The underlying provider failed on Open. ---> System.Data.SqlClient.SqlException: Se ha denegado el permiso CREATE DATABASE en la base de datos 'master'.
Error al intentar adjuntar una base de datos nombrada automáticamente para el archivo C:UsersNemrutDocumentsVisual Studio 2012ProjectsexampleexampleApp_DatadeCanias.mdf. Ya existe una base de datos con el mismo nombre, no se puede abrir el archivo especificado o se encuentra en un recurso compartido UNC.

Puesto que no he quitado ni puesto nuevas bbdd al proyecto, mis sospechas son que la cadena de conexión se ha visto afectada por el cambio de IIS express a IIS. La cadena que utilizo es así:

connectionString="metadata=res://*/example Model.csdl|res://*/example Model.ssdl|res://*/example Model.msl;
         provider=System.Data.SqlClient;
         provider connection string="Data Source=.SQLEXPRESS;
         Integrated Security=true;
         AttachDbFilename=|DataDirectory|example.mdf;
         MultipleActiveResultSets=True;
         Connect Timeout=30;
         Application Name=EntityFramework"" 

Y bueno, llevo 4 días dándole vueltas y estoy realmente frustrado, he quitado el .mdf y vuelto a poner 20 veces en distintos lugares, he tocado la cadena en 50 sitios distintos... Así que cualquier pista de lo que pueda ser me viene genial. Por supuesto, he seguido todas las soluciones de stackoverflow y de la documentación de windows y ni por esas... Así que si me podéis echar una mano genial.

Saludicos

Merkury

Has cambiado el servidor SQL Express?

Si has cambiado de SQL Express a SQL Server, en la cadena de conexion tienes que dejar el Data Source tal que:


Data Source=.;

Solo el punto que hace referencia al SQL Server local.

1 respuesta
LLoid

#2 Gracias por contestar, pero sigo utilizando SQL Express, es compatible con IIS verdad?

1 respuesta
Merkury

#3 Pues en teoria si.

De todas formas el ISS lo tienes también en tu maquina local?

1 respuesta
LLoid

#4 Sí, está todo en local

Merkury

Revisa lo del trusted authentication, porque igual ahora con el ISS tienes que modificar la cadena de conexión

1 respuesta
LLoid

#6 Acaban de comentarme la solución por otro lado, por lo visto al utilizar IIS no puedes tener los ficheros .mdf en la carpeta propia del proyecto, si no que deben estar dentro de la carpeta de SQLExpress, y después adjuntarla con el SQL server management studio (comento esto por si alguien se ve en una situación similar en el futuro)

Gracias por echarme una mano de todos modos :D

Usuarios habituales

  • LLoid
  • Merkury