Düzeltme: bir xp_sendmail genişletilmiş saklı yordamı başarıyla SQL Server 2000 SP2 veya sonraki sürümlerde çalışmaz

Makale çevirileri Makale çevirileri
Makale numarası: 833045 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

Xp_sendmail kullanarak e-posta iletisine genişletilmiş saklı yordamı bir bilgisayarda, göndermeye çalıştığınızda, Microsoft SQL Server 2000 Service Pack 2 (SP2) çalışıyorsa veya daha sonra genişletilmiş saklı yordamı xp_sendmail başarılı bir şekilde çalışmayabilir. Aşağıdaki hata iletisini alabilirsiniz:
Sunucu: <a1>hata</a1> 18025, Düzey 16, State 1, satır 0
xp_sendmail: posta hatası 0x80040115
Not Bu sorun, genellikle aşağıdaki iki koşul doğru olduğunda oluşur:
  • Microsoft SQL Server 2000 çalıştıran bir bilgisayarda Microsoft Exchange Server çalıştıran bilgisayar arasındaki ağ bağlantısı kaybı var.
  • Exchange sunucu yeniden başladıktan sonra hatanın oluştuğu bir SQL Server örneği üzerinde saklı yordamın ilk yürütülmesini xp_sendmail genişletilmiş.

Çözüm

Hizmet paketi bilgileri

Bu sorunu gidermek için <a0></a0>, Microsoft SQL Server 2000 için en son hizmet paketini edinin. Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
290211En son SQL Server 2000 hizmet paketi nasıl elde edilir

Düzeltme bilgileri

Bu düzeltmenin İngilizce sürümü, aşağıdaki tabloda listelenen dosya özniteliklerine (veya daha yeni dosya özniteliklerine) sahiptir. Bu dosyaların tarihleri ve saatleri Koordinatlı Evrensel Saat'e (UTC) göre listelenir. Dosya bilgilerini görüntülediğinizde yerel saate dönüştürülür. UTC ve yerel saat arasındaki farkı bulmak için <a0></a0>, Denetim Masası'ndaki Tarih ve Saat aracında saat dilimi sekmesini kullanın.
   Date         Time   Version             Size   File name
   ---------------------------------------------------------------------
   31-May-2003  18:45  2000.80.818.0      78,400  Console.exe      
   28-Oct-2003  04:21  2000.80.873.0     315,968  Custtask.dll     
   30-Jan-2004  16:29  2000.80.911.0      33,340  Dbmslpcn.dll     
   25-Apr-2003  02:12                    786,432  Distmdl.ldf
   25-Apr-2003  02:12                  2,359,296  Distmdl.mdf
   30-Jan-2003  01:55                        180  Drop_repl_hotfix.sql
   12-Sep-2003  03:26  2000.80.859.0   1,905,216  Dtspkg.dll       
   26-Aug-2003  20:16  2000.80.854.0     528,960  Dtspump.dll      
   23-Jun-2003  22:40  2000.80.837.0   1,557,052  Dtsui.dll        
   23-Jun-2003  22:40  2000.80.837.0     639,552  Dtswiz.dll       
   24-Apr-2003  02:51                    747,927  Instdist.sql
   03-May-2003  01:56                      1,581  Inst_repl_hotfix.sql
   30-Jan-2004  16:29  2000.80.911.0      90,692  Msgprox.dll      
   01-Apr-2003  02:07                      1,873  Odsole.sql
   30-Jan-2004  16:29  2000.80.911.0      62,024  Odsole70.dll     
   30-Jan-2004  16:29  2000.80.911.0      25,144  Opends60.dll     
   07-May-2003  18:47                    132,096  Opends60.pdb
   30-Jan-2004  16:28  2000.80.911.0      57,904  Osql.exe         
   02-Apr-2003  23:15  2000.80.797.0     279,104  Pfutil80.dll     
   04-Aug-2003  18:17                    550,780  Procsyst.sql
   12-Sep-2003  00:37                     12,305  Qfe469315.sql
   22-May-2003  22:57                     19,195  Qfe469571.sql
   30-Jan-2004  01:16                  1,090,380  Replmerg.sql
   30-Jan-2004  16:29  2000.80.911.0     221,768  Replprov.dll     
   30-Jan-2004  16:29  2000.80.911.0     307,784  Replrec.dll      
   29-Jan-2004  23:24  2000.80.911.0     159,813  Replres.rll
   06-Sep-2003  00:00                  1,087,150  Replsys.sql
   13-Aug-2003  16:28                    986,603  Repltran.sql
   30-Jan-2004  16:29  2000.80.911.0     287,304  Rinitcom.dll     
   30-Jan-2004  16:29  2000.80.911.0      57,916  Semnt.dll        
   29-Jul-2003  20:13  2000.80.819.0     492,096  Semobj.dll       
   31-May-2003  18:27  2000.80.818.0     172,032  Semobj.rll
   02-Jan-2004  19:42  2000.80.904.0      53,832  Snapshot.exe     
   09-Dec-2003  20:07                    117,834  Sp3_serv_uni.sql
   05-Feb-2004  00:46  2000.80.913.0      28,672  Sqlagent.dll     
   05-Feb-2004  00:47  2000.80.913.0     311,872  Sqlagent.exe     
   19-Feb-2004  18:02  2000.80.916.0     168,001  Sqlakw32.dll     
   30-Jan-2004  16:29  2000.80.911.0   4,215,360  Sqldmo.dll       
   07-Apr-2003  17:44                     25,172  Sqldumper.exe    
   29-Jan-2004  23:17  2000.80.911.0      28,672  Sqlevn70.rll
   05-Mar-2004  17:13  2000.80.922.0     180,792  Sqlmap70.dll     
   03-Sep-2003  02:56  2000.80.857.0     188,992  Sqlmmc.dll       
   02-Sep-2003  23:03  2000.80.857.0     479,232  Sqlmmc.rll
   22-Oct-2003  00:08  2000.80.871.0     401,984  Sqlqry.dll       
   30-Jan-2004  16:29  2000.80.911.0      57,920  Sqlrepss.dll     
   09-Mar-2004  19:54  2000.80.922.0   7,614,545  Sqlservr.exe     
   09-Mar-2004  19:57                 12,788,736  Sqlservr.pdb
   30-Jan-2004  16:29  2000.80.911.0     590,396  Sqlsort.dll      
   30-Jan-2004  16:29  2000.80.911.0      45,644  Sqlvdi.dll       
   30-Jan-2004  16:29  2000.80.911.0     106,588  Sqsrvres.dll     
   30-Jan-2004  16:29  2000.80.911.0      33,340  Ssmslpcn.dll     
   30-Jan-2004  16:29  2000.80.911.0      82,492  Ssnetlib.dll     
   30-Jan-2004  16:29  2000.80.911.0      25,148  Ssnmpn70.dll     
   28-Oct-2003  04:21  2000.80.873.0     123,456  Stardds.dll      
   30-Jan-2004  16:29  2000.80.911.0     158,240  Svrnetcn.dll     
   30-Jan-2004  16:29  2000.80.911.0      76,416  Svrnetcn.exe     
   30-Apr-2003  23:52  2000.80.816.0      45,132  Ums.dll          
   30-Apr-2003  23:52                    132,096  Ums.pdb
   30-Jan-2004  16:29  2000.80.911.0      98,872  Xpweb70.dll    
Not Dosya bağımlılıkları nedeniyle, en son düzeltme veya özellik, bu dosyaları içeren ek dosyalar da içerebilir.

Durum

Microsoft, "Geçerli Olduğu Ürünler" bölümünde listelenen Microsoft ürünlerinde bu sorunun olduğunu onaylamıştır. Bu sorun ilk olarak Microsoft SQL Server 2000 Service Pack 4'te giderilmiştir.

Pratik Çözüm

Bu soruna geçici bir çözüm bulmak için <a0></a0>, ağ bağlantısını doğrulamak ve postayı yeniden gönderin. Kayıt defteri girdilerini yapılandırma veya uygulama kodunuzu yeniden deneme mantık ekleyerek genişletilmiş saklı yordamı xp_sendmail retry seçeneği ayarlayabilirsiniz. Bunu yapmak için aşağıdaki yöntemlerden birini kullanın:
  • Yöntem 1: genişletilmiş saklı yordamı xp_sendmail retry seçeneğini yapılandırın.

    Varsayılan olarak, saklı yordam karşılaştığı xp_sendmail genişletilmiş, bu bir düzeltmesi yüklendikten sonra HRESULT 0x80040115 =, genişletilmiş saklı yordamı xp_sendmail, 1000 mili saniye için Uykuya geçme sonra postayı yeniden göndermeyi dener. Ancak, her deneme için bekleme aralığı yeniden deneme sayısını da yapılandırabilirsiniz.

    Önemli Bu bölüm, yöntem veya görev kayıt defterini nasıl söyleyin adımları içerir. Ancak kayıt defterini hatalı olarak değiştirirseniz önemli sorunlar oluşabilir. Bu nedenle, bu adımları dikkatlice uyguladığınızdan emin olun. Ek koruma için, kayıt defterini değiştirmeden önce yedeklemeyi unutmayın. Bir sorun oluşursa kayıt defterini daha sonra geri yükleyebilirsiniz. Kayıt defterini yedekleme ve geri yükleme hakkında daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
    322756Windows'da kayıt defterini yedekleme ve geri yükleme
    1. Yeniden deneme sayısı'nı yapılandırmak için <a0></a0>, aşağıdaki kayıt defteri anahtarına NumberOfTimesToRetryOnNetworkError DWORD değeri ekleyin ve sonra değerini ayarlayın:
      • SQL Server 2000 varsayılan örneği için HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\MSSQLServer kullan kayıt defteri anahtarı.
      • SQL Server 2000 adlandırılmış örneği için HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft kullanan SQL Server\ Instance Name \MSSQLServer kayıt defteri anahtarı.
    2. Xp_sendmail retry seçeneği için bekleme aralığı ayarlamak için <a0></a0>, aşağıdaki kayıt defteri anahtarına WaitIntervalForRetryOnNetworkError DWORD değeri ekleyin ve sonra değerini ayarlayın:
      • SQL Server 2000 varsayılan örneği için HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\MSSQLServer kayıt defteri anahtarını kullanın.
      • SQL Server 2000 adlandırılmış örneği için Instance Name HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\ \MSSQLServer kayıt defteri anahtarını kullanın.
  • Yöntem 2: Ekleme mantığı uygulama kodunuzu yeniden deneyin.

    Bunu yapmak için şu adımları izleyin:
    1. Posta sunucusu olarak yapılandırılmış bilgisayarın ağ bağlantısını doğrulayın.
    2. Ağ bağdaştırıcısı ve ilgili sürücünün doğru çalıştığından emin olun.
    3. Uygun bir mantık Transact-SQL komut dosyasında hata oluştuktan sonra e-posta iletisinin gönderilmesi için genişletilmiş saklı yordamı xp_sendmail kullanarak e-posta iletileri göndermek için kullanın. Bunu yapmak için <a0></a0>, aşağıdakine benzer bir Transact-SQL komut dosyasını kullanabilirsiniz:
      DECLARE
      @EmailAddTO varchar(30),
      @EmailSubject varchar(130),
      @EmailText varchar(255),
      @return int,
      @Counting int 
      
      BEGIN
      /* SET value */
      SET @return = 0 
      SET @Counting = 0 
      SET @EmailSubject = 'TEST EMAIL' 
      SET @EmailText = 'This is a test email'
      SET @EmailAddTO = '<RecipientAddress>' 
      
      /* LOOP. If e-mail is sent, break loop; ELSE WAIT 10 seconds, and then RETRY. */
      WHILE 1=1
      BEGIN
      SET @Counting = @Counting + 1
      
      EXEC @return = master.dbo.xp_sendmail 
      @recipients = @EmailAddTO,
      @message = @EmailText ,
      @subject = @EmailSubject
      
      /* CHECK value, break if SUCCESS */
      IF @return = 0
      BEGIN
      PRINT 'EMAIL SENT'
      BREAK
      END
      ELSE
      BEGIN
      /* Try 5 times */
      IF @Counting = 5
      BREAK 
      PRINT 'EMAIL FAILED, WAIT 10 SECONDS, TRY AGAIN'
      /* 000 hours, 00 minutes, and 10 seconds */
      WAITFOR DELAY '000:00:10'
      END
      END
      END
      GO

Daha fazla bilgi

Xp_sendmail genişletilmiş saklı yordamı'ı xp_sendmail kullanarak e-posta iletisi gönderdiğinizde, birçok MAPI API çağrılarını saklı yordamını sağlar genişletildi. Ancak, bu düzeltmeyi yeniden deneme</a1> seçeneğinde aşağıdaki hata iletisini başarısızlığı nedeniyle, tek bir çağrı için yalnızca eklenir:
hresult = 0X80040115

Referanslar

Yazılım güncelleştirme terminolojisi hakkında daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
824684Microsoft yazılım güncelleştirmelerini açıklamak için kullanılan standart terminolojinin açıklaması
Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın:
263556SQL Mail'ı yapılandırma hakkında
315886Ortak SQL posta sorunları
820220genişletilmiş saklı yordamı xp_sendmail kullanarak e-posta gönderdiğinizde 0x80070005 veya 0x80040005 hatası oluşuyor

Özellikler

Makale numarası: 833045 - Last Review: 2 Kasım 2007 Cuma - Gözden geçirme: 4.3
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 2000 Desktop Engine (MSDE) SP2
  • Microsoft SQL Server 2000 Desktop Engine (MSDE) SP3
  • Microsoft SQL Server 2000 Service Pack 2
  • Microsoft SQL Server 2000 Service Pack 3
  • Microsoft SQL Server 2000 Service Pack 2
  • Microsoft SQL Server 2000 Service Pack 3
  • Microsoft SQL Server 2000 Service Pack 2
  • Microsoft SQL Server 2000 Personal Edition Service Pack 3
  • Microsoft SQL Server 2000 Service Pack 2
  • Microsoft SQL Server 2000 Service Pack 3
Anahtar Kelimeler: 
kbmt kbhotfixserver kbqfe kbregistry kbsqlserv2000presp4fix kbfix kbbug kbemail kbdll kbprb kberrmsg kbsqlservmail KB833045 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:833045

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com