Ejemplo de Blazor CRUD: HTTP Error 500 para la solicitud en el servidor IIS

asp.net-core blazor c# iis

Pregunta

Acabo de publicar mi ejemplo de Blazor CRUD en el servidor local. El sitio web funciona bien, pero recibo el error HTTP 500 cuando voy a la página de obtención de datos. Todo funciona bien cuando ejecuto Visual Studio, pero el servidor IIS. Tengo la cadena de conexión en el archivo de contexto. También edité la cadena de conexión en la página de configuración del grupo de aplicaciones, pero aún no funciona.

Esta es la pieza de código que estoy usando en el archivo de contexto:

        optionsBuilder.UseSqlServer(@"Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=master;Trusted_Connection=True;");

También uso esta cadena de conexión para el IIS: introduzca la descripción de la imagen aquí

Respuesta aceptada

La respuesta es que hay dos instancias diferentes de LocalDB aquí. A diferencia de las instancias de SQL Server Express, que se ejecutan como servicios de Windows, las instancias de LocalDB se ejecutan como procesos de usuario. Cuando diferentes usuarios de Windows se conectan a LocalDB, terminarán con diferentes procesos de LocalDB iniciados para cada uno de ellos. Cuando nos conectamos a (localdb) \ v11.0 desde Visual Studio, una instancia de LocalDB se inicia para nosotros y se ejecuta como nuestra cuenta de Windows. Pero cuando la aplicación web, que se ejecuta en IIS como ApplicationPoolIdentity, se conecta a LocalDB, se inicia otra instancia de LocalDB y se ejecuta como ApplicationPoolIdentity. En efecto, aunque Visual Studio y la aplicación web utilizan la misma cadena de conexión LocalDB, se conectan a diferentes instancias de LocalDB. Obviamente, la base de datos creada a partir de Visual Studio en nuestra instancia de LocalDB no estará disponible en la instancia de LocalDB de la aplicación web.

La solución fácil es usar SQL Server Express en lugar de LocalDB

Más detalles: https://blogs.msdn.microsoft.com/sqlexpress/2011/12/08/using-localdb-with-full-iis-part-2-instance-ownership/




Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué