2016-09-06 1 views
-1

Je tente d'exécuter un travail SQL quotidien qui envoie des messages à mon client à l'aide du serveur SMTP et des objets CDONT Mail. A déjà le code qui fonctionne bien pour moi. Récemment, j'ai mis à jour mon serveur de Microsoft Server 2003 à 2012 et SQL Server 2005 à 2014.Erreur d'exécution Microsoft VBScript Description de l'erreur: Objet requis: 'Serveur'

Ce code ci-dessous fonctionne très bien dans Classic ASP dans le serveur. Mais dans l'emploi sql obtenir erreur

Set objEMail = Server.CreateObject("CDO.Message") 
Set objConfig = Server.CreateObject("CDO.Configuration") 
Set Confi = objConfig.Fields 
Confi("http://schemas.microsoft.com/cdo/configuration/sendusing") = 1 
Confi("http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory") = "C:\inetpub\mailroot\pickup" 
Confi.Update 
Set objEMail.Configuration = objConfig 
objEMail.To = "[email protected]" 
objEMail.From ="[email protected]" 
objEMail.Subject = "Email subject goes here" 
objEMail.HTMLBody = "Hi Sql job data" 
objEMail.Send 
Set objEMail = Nothing 

Exécuté en tant qu'utilisateur: service NT \ SQLSERVERAGENT. Code d'erreur: 0 Erreur Source = erreur d'exécution Microsoft VBScript Description de l'erreur: Objet requis: 'Serveur' #

+0

Après la recherche, j'ai trouvé cdonts.ddl ne supporte pas Windows donc j'ai essayé CDO. – Rejish

+0

Pouvez-vous nous montrer le code qui ne fonctionne pas, plutôt que le code qui est? – Dijkgraaf

+0

Bonjour Dijkgraff. Merci pour votre aide. J'ai eu la solution – Rejish

Répondre

0

Server est un objet spécifique à ASP Classic.

Votre code est probablement exécuté par Windows Script Host (wscript.exe/cscript.exe), qui possède sa propre fonction CreateObject.

Retirez simplement le Server. pour le faire fonctionner.

Set objEMail = CreateObject("CDO.Message") 
Set objConfig = CreateObject("CDO.Configuration") 

Set Confi = objConfig.Fields 
Confi("http://schemas.microsoft.com/cdo/configuration/sendusing") = 1 
Confi("http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory") = "C:\inetpub\mailroot\pickup" 
Confi.Update 

Set objEMail.Configuration = objConfig 
objEMail.To = "[email protected]" 
objEMail.From ="[email protected]" 
objEMail.Subject = "Email subject goes here" 
objEMail.HTMLBody = "Hi Sql job data" 
objEMail.Send 

Set objEMail = Nothing 

Pour mémoire, l'option est Server en ASP classique, ainsi, le code ci-dessus fonctionnerait dans les deux environnements.

+0

Merci beaucoup. C'est comme un charme. – Rejish