es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

SQL Server, el correo de la base de datos no funciona una vez publicado en IIS.

Estoy intentando configurar el servidor SQL para enviar automáticamente un correo electrónico cada vez que se inserta un nuevo registro en una tabla. He configurado el correo electrónico de la base de datos y funciona perfectamente cuando corro la aplicación localmente desde Visual Studio. Pero en cuanto la publico en el servidor IIS de la empresa, falla y peor aún, los nuevos registros ni siquiera se insertan en la tabla.

¿Qué podría hacer que funcione en IIS express local y no en el servidor IIS de la empresa?
Fui al Administrador de IIS y no he encontrado ninguna configuración relacionada con SMTP con un servidor SQL …

Aquí está el código del trigger que nuevamente funciona pero solo localmente. Gracias.

CREAR TRIGGER dbo.trigger1
ON dbo. ******
DESPUÉS DE INSERTAR
SEGÚN

COMIENCE

DECLARAR @bodyHtml AS VARCHAR (100)

SET @bodyHtml = ‘= http: ***************’+ CAST ((SELECT MAX (Número) FROM ******) AS nvarchar (max))

EXEC msdb.dbo.sp_send_dbmail
@profile_name = ‘**********’,
@recipients = ‘**********’,
@subject = ‘***********’,
@body = @bodyHtml,
@body_format = ‘HTML’;

FIN
IR

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Es posible que el servidor IIS no tenga los permisos necesarios para ejecutar el procedimiento almacenado de correo electrónico de la base de datos. Puede verificar los permisos ejecutando la siguiente consulta:

    SELECT * FROM sys.database_principals WHERE name = 'IIS APPPOOL\[NombreDeTuAppPool]'

    Si la consulta no devuelve resultados, deberá agregar el IIS AppPool a la base de datos con los permisos necesarios. Puede hacer esto ejecutando la siguiente consulta:

    CREATE USER [IIS APPPOOL\[NombreDeTuAppPool]] FROM WINDOWS;

    Luego deberá otorgar los permisos necesarios al usuario IIS AppPool. Puede hacer esto ejecutando la siguiente consulta:

    GRANT EXECUTE ON msdb.dbo.sp_send_dbmail TO [IIS APPPOOL\[NombreDeTuAppPool]];

    Una vez que haya hecho esto, debería poder ejecutar el disparador en el servidor IIS.

Comments are closed.