asp.net - sistema - Interfaces de red SQL, error: 26-Error al localizar el servidor/instancia especificada
sql server error 2 (13)
Bueno, tengo un gran problema que intento resolver durante días pero no pude hacerlo, así que necesito tu ayuda. Tengo una aplicación web en asp.net 4.0 donde implementé miembros personalizados y proveedores de roles. Cuando abro la página de inicio de la aplicación, se conecta a la base de datos y recupera cierta información. También hay un formulario de inicio de sesión y cuando inicio sesión, valida al usuario a través de la base de datos y me redirige a las páginas reservadas, pero aparece este error:
Se ha producido un error relacionado con la red o específico de la instancia al establecer una conexión con SQL Server. El servidor no se encontró o no estaba accesible. Verifique que el nombre de la instancia sea correcto y que SQL Server esté configurado para permitir conexiones remotas. (proveedor: Interfaces de red SQL, error: 26 - Error al localizar el servidor / Instancia especificada)
Descripción:
Se produjo una excepción no controlada durante la ejecución de la solicitud web actual. Revise el seguimiento de la pila para obtener más información sobre el error y dónde se originó en el código.
Detalles de la excepción:
System.Data.SqlClient.SqlException: Se ha producido un error relacionado con la red o específico de la instancia al establecer una conexión con SQL Server. El servidor no se encontró o no estaba accesible. Verifique que el nombre de la instancia sea correcto y que SQL Server esté configurado para permitir conexiones remotas. (proveedor: Interfaces de red SQL, error: 26 - Error al localizar el servidor / Instancia especificada)
Error de fuente:
Se generó una excepción no controlada durante la ejecución de la solicitud web actual. La información sobre el origen y la ubicación de la excepción se puede identificar utilizando el seguimiento de pila de excepción a continuación.
Intenté muchas cosas, encontré alguna solución en stackoverflow pero nada funcionó. Aquí están mis conexiones:
<connectionStrings>
<clear/>
<remove name="LocalSqlServer"/>
<add name="LocalSqlServer" connectionString="Data Source=MSSQL2008-1;Initial Catalog=agency;
Integrated Security=False;User ID=adis_agency;Password=niarda2012;Connect Timeout=180;Encrypt=False;
Packet Size=4096" providerName="System.Data.SqlClient" />
<add name="AgencyConn" connectionString="Data Source=MSSQL2008-1;Initial Catalog=agency;
Integrated Security=False;User ID=adis_agency;Password=niarda2012;Connect Timeout=180;Encrypt=False;
Packet Size=4096" providerName="System.Data.SqlClient"/>
</connectionStrings>
A continuación se encuentran también la sección de membresía y administrador de roles web.config:
<membership defaultProvider="AuthProvider">
<providers>
<clear/>
<add name="AuthProvider" type="AuthenticationProvider" applicationName="~/Reserved/" connectionStringName="AgencyConn"/>
</providers>
</membership>
<roleManager enabled="true" defaultProvider="MyRoleProvider">
<providers>
<clear/>
<add name="MyRoleProvider" type="RoleAccessProvider" connectionStringName="AgencyConn"/>
</providers>
</roleManager>
Por favor, ¿alguien puede ayudar a descubrir qué está mal?
Cambie su. / SQLEXPRESS, y agregue su nombre expreso SQL solamente y funciona para mí
<add name="BlogDbContext" connectionString="data source=your name here; initial catalog=CodeFirstDemo; integrated security=True" providerName="System.Data.SqlClient"/>
El problema se debe a que el DNS no puede resolver el nombre de host. Intente usar la dirección IP en lugar del "nombre de la computadora".
En mi caso busqué servicios. Luego encontró un servicio llamado "SQL Server (SQLEXPRESS). Luego, haga clic derecho sobre eso. Seleccione propiedades. Luego, haga clic en iniciar. Eso es todo. Resolvió el problema.
En mi caso, el nombre de connectionString en el archivo web.config se deletreaba mal. Este es el nombre del contexto de la base de datos que utiliza Entity Framework. Supongo que este es el error que obtienes cuando EF no puede hacer coincidir el nombre de ConnectionString con el contexto.
Este problema me llevó aproximadamente un día, en uno de mis proyectos ASP.NET MVC, afortunadamente tuve el problema en mi máquina y no en el entorno de producción, por lo que comparé web.config y veo que el error desapareció ... un verdadero desafío conecte el error 26 de SQL Server a este problema
He estado experimentando el mismo problema en mi aplicación ASP.NET MVC 4.
La forma en que lo resolví, estaba en DatabaseContext
. Al pasar el nombre de la cadena de conexión que quería usar a través del constructor base.
public class DatabaseContext : DbContext
{
public DatabaseContext()
: base("DefaultConnection") // <-- this is what i added.
{
}
public DbSet<SomeModel> SomeModels { get; set; }
}
La respuesta está en el mensaje de error en sí:
Error Locating Server/Instance Specified
Básicamente, tienes la instancia del servidor equivocada en la cadena de conexión, es decir, este bit:
Data Source=MSSQL2008-1
es incorrecto y no apunta al servidor, o el nombre del servidor no se resuelve en una dirección IP. Otras dos posibilidades: (1) el servicio de navegador SQL en el cuadro que ejecuta SQL Server no se está ejecutando o (2) el Firewall de Windows (o algún otro firewall) en el cuadro de SQL está denegando las conexiones entrantes.
En definitiva, si el nombre del servidor es correcto, se convierte en un problema de red y debe averiguar por qué el cliente no puede conectarse al servidor (y es más probable que se trate de un problema de red básico que de un problema de configuración de SQL Server). .
Para mí, el problema era que el registro de DNS estaba mal ...
Lo siguiente, que resultó ser muy útil, se toma en gran parte de esta publicación de blog .
Este mensaje de error es bastante específico y la solución es bastante simple.
Este mensaje de error aparece solo si está intentando conectarse a una instancia con nombre de SQL Server. Para una instancia predeterminada, nunca ve esto porque incluso si fallamos en esta etapa (es decir, servidor / instancia de localización de errores especificados), continuaremos intentando conectar utilizando valores predeterminados, por ejemplo, puerto TCP 1433 predeterminado, nombre de canal predeterminado para Canalizaciones con nombre.
Cada vez que un cliente realiza una conexión con la instancia denominada SQL Server, enviaremos un paquete SSRP UDP al puerto UDP 1434 de la máquina servidor. Necesitamos este paso para conocer la información de configuración de la instancia SQL, por ejemplo, protocolos habilitados, puerto TCP, canalización nombre, etc. Sin esta información, el cliente no sabe cómo conectarse y falla con este mensaje de error.
En una palabra, la razón por la que obtenemos este mensaje de error es que la pila del cliente no pudo recibir el paquete UDP de respuesta SSRP del buscador SQL. Para aislar el problema exacto, siga estos pasos:
Asegúrese de que el nombre de su servidor sea correcto, por ej., No tenga errores tipográficos en el nombre.
Asegúrese de que el nombre de su instancia sea correcto y que exista tal instancia en su máquina objetivo. (Tenga en cuenta que algunas aplicaciones convierten / a).
Asegúrese de que la máquina del servidor sea alcanzable, por ejemplo, DNS puede resolverse correctamente, puede hacer ping al servidor (no siempre es cierto).
Asegúrese de que el servicio del navegador SQL se esté ejecutando en el servidor.
Si el firewall está habilitado en el servidor, debe poner sqlbrowser.exe y / o el puerto UDP 1434 en excepción.
Hay un caso de esquina donde aún puede fallar después de verificar los pasos 1 a 4. También puede suceder cuando:
- su servidor es una instancia con nombre en el clúster o en una máquina multitarjeta
- su cliente es una máquina Vista con Firewall activado.
Una herramienta que podría ser útil (fue para mí) es PortQry . Si este comando devuelve información y contiene su instancia de destino, entonces puede descartar la posibilidad 4) y 5) anterior, lo que significa que tiene un buscador SQL en ejecución y su firewall no bloquea el paquete UDP del navegador SQL. En este caso, puede verificar otros posibles problemas, como una cadena de conexión incorrecta.
Como nota final, el mensaje de error para el mismo problema cuando usa SNAC es: [SQL Native Client] Interfaces de red SQL: error al localizar el servidor / instancia especificada [xFFFFFFFF].
Microsoft lanzó recientemente una visita guiada que puede servir como una ventanilla única para resolver problemas de la mayoría de los problemas de conectividad a SQL Server: Solución de errores de conectividad a SQL Server
Si se está conectando desde la máquina A de Windows a la máquina B de Windows (servidor con SQL Server instalado) y está obteniendo este error, debe hacer lo siguiente:
En la máquina B:
1.) encienda el servicio de Windows llamado "SQL Server Browser" e inicie el servicio
2.) en el firewall de Windows, habilite el puerto entrante UDP 1434 (en caso de que SQL Server Management Studio en la máquina A se esté conectando o se esté conectando un programa en la máquina A)
3.) en el firewall de Windows, habilite el puerto entrante TCP 1433 (en caso de que haya una conexión telnet)
4.) en el Administrador de configuración de SQL Server, habilite el protocolo TCP / IP para el puerto 1433
Tenemos el mismo problema recientemente. Descubrimos que el código está buscando la cadena de conexión llamada "LocalSqlServer" en el archivo machine.confg. Añadimos esta línea y está funcionando bien.
Tuve el mismo error e inicié el servicio SQL Server Express y funcionó. Espero que esto ayude.
Vaya a la ventana + R y escriba services.msc y presione enter.
Luego, inicie SQL Server manualmente si no se inicia automáticamente.
Entonces intenta iniciar sesión, debe ser trabajos.
tuve este problema y lo solucioné el problema parecía ser este:
incorrecto:
<add key="aaa" value="server=[abc/SQL2K8];database=bbb;uid=ccc;password=ddd;" />
derecho
<add key="aaa" value="server=abc/SQL2K8;database=bbb;uid=ccc;password=ddd;" />