Lo primero que necesita borrar si está utilizando la autenticación de Windows y no está mencionando cualquier nombre de usuario en la cadena de conexión a continuación:
¿Qué pasa cuando se ejecuta el código a través de localhost: cuando ejecute su cliente de prueba wcf desde localhost, podrá comunicarse con la base de datos a medida que el servicio de su cuenta active la aplicación del modo de depuración local. Por lo tanto, tiene acceso a la base de datos porque devenv.exe se ejecuta con su cuenta de usuario.
Pero cuando implementa su servicio web en IIS. Ahora entienda que este servicio se ejecuta bajo IIS no debajo de su cuenta. Por lo tanto, debe asignar derechos de acceso al servicio IIS para acceder al servidor SQL para la autenticación de Windows. Aquí su servicio web no podría comunicarse con el servidor SQL debido a un problema de derechos de acceso.
Si está utilizando la autenticación de Windows para conectar su base de datos, solo tiene que cambiar la configuración del conjunto de aplicaciones de IIS. Necesita cambiar la identidad del grupo de aplicaciones de IIS al sistema local.
A continuación se presentan los pasos para WCF autentificación de las ventanas: • Abrir IIS (Windows + R (marcha) a continuación, escriba inetmgr y, a continuación, haga clic en OK) • haga doble clic en el nombre del PC en Conexiones • Haga clic en Grupos de aplicaciones • Seleccione su grupo de aplicaciones (DefaultAppPool) • A continuación, en acciones a la derecha, haga clic en Configuración avanzada: • Vaya a la sección Modelo de proceso y • haga clic en Identidad. • Ahora seleccione LocalSystem.
Ahora abra su estudio de administración de servidor sql: run run-> escriba sms y luego presione ok en ssms, inicie sesión con su cuenta de autenticación de Windows. pestaña de seguridad abierta expande la pestaña de inicios de sesión luego podrá ver su cuenta.
propiedades Ahora abiertas de su cuenta van a userMapping a continuación, seleccione la base de datos que desea conectarse a continuación, comprobar los servicios de pertenencia a la función que desea utilizar para la base de datos seleccionada Haga clic en OK.
agregar Trusted_Connection = True; propiedad en su cadena de conexión. Guárdelo & despliegue el servicio web. Reiniciar el grupo de aplicaciones.
podrá conectar la base de datos ahora.
muchas gracias por esta solución, pero por favor puede usted descripción sobre este problema –
Seleccionar NetworkService no me ayudó, lo que me solucionó el problema fue seleccionar la opción Cuenta personalizada en Identidad y completar mi nombre de usuario y contraseña . Gracias por la dirección – ParPar
Ahora comenzó a dar error: Falló el inicio de sesión para el usuario 'WORKGROUP \\ machine $'. :( –