.Net

2009-03-09 24 views
4

'da IIS SMTP Sunucusu ile anlamlı etkileşim Her hafta çok sayıda aboneye iş bülteni gönderir. İş çok gençken, katılmadan önce, bazı toplu postacıların "ücretsiz" bir sürümünü kullandılar, bu da 5 bin posta göndermek için altı saat süren ve internetteki her ters DNS kontrolünün başarısızlığına uğrayan..Net

Bunu, doğru sunucuda çalıştırılan ve tam DNS uyumu ile yarım saatte yaklaşık 20 bin posta gönderebilen bir ısmarlama .Net widget'ına yükselttim. Maalesef (veya nihayet bakış açınıza bağlı olarak) posta listemiz artık bu basit aracı geliştirdi. Özellikle yeterli kısıtlama eksikliği, sunucunun bir kerede rahatça gönderebileceğinden daha fazla posta yapabilir. IIS SMTP sunucusunun kullanılabilir posta depolama ayırma biriminin ne kadar dolu olduğunu ve buna göre yükü kısaltmasını izlemem gerekiyor.

Maalesef posta nesnesinin postaya ne zaman (veya hatta olsa) gönderileceği konusunda bilgi bulamıyorum. İzlemek için bir yerim varsa bir dosya sistemi gözlemcisini uygulayabilirim. Gerçek bir posta dosyası oluşturulmamışsa, işlevselliği uygulamak için bir tane oluşturmam gerekecek, ancak nereye koyacağımı bilmem gerekecek. Sistemin bir şekilde göndermeyi teyit etmesine izin vermek de daha fazla güvence vericiydi, ancak bir mailin gönderildiği sistemden veri almaktan nasıl vazgeçeceğimi bilmiyorum.

Kapsamlı Googling'in bu noktalarda belirsiz olduğu kanıtlanmıştır; Bu yüzden, buradaki herkesin bu sorunlara yol gösterebileceğini nereden bildiğini merak ettim ya da bana doğru yönde işaret edebilirdim.

Çok teşekkürler.

DÜZENLEME: Sonunda, IIS SMTP sunucusundaki iş hacmini kötü bir iş olarak ölçmeyi denemekten vazgeçtim. Sadece oynamak istemiyor gibiydi. Şimdi ayrı bir yerde girişimi yapıyorum ve bundan sonra SMTP sunucusuna geçiyorum. Gerçekten de, IIS SMTP sunucusunun işleyişinde sekmeleri tutmaya çalışan gerçekten rahatsız eden kimseyi tanımıyorum ve bu yazıdan dolayı bu soru cevapsız kalıyor.

Oh iyi

...

cevap

7

tamam. Sunucu

Tüm postalar IIS SMTP sunucusu kullanılarak oluşturulan IIS SMTP, ilk etapta, Pikap Directory gönderilir

. Eğer bir posta gönderiyorsanız, o zaman orada görmek için Matrix zamanında çalışmanız gerekecektir çünkü muhtemelen hemen gidecektir.

Tek bir postanın kapıdan çıkış yolu, IIS'deki sıra klasöründen geçer.

Bu işlemi izlemek için Performans Sayacını izlemek isterseniz, "Uzak Kuyruk Uzunluğu" na bakmanız gerekir. (Bunun nedeni, "Yerel Kuyruk Uzunluğu", ağ içinde "Yerel Olarak" gönderilen postaları izlemesidir. "Uzak", bu örnekte "Dünyanın dışına" atıfta bulunur. "Yerel" özel tanımı, gönderdiğimiz sırada beni kurtarır. yerel posta yok, ancak sunucuda IIS'nin belirli bir yüklemesinde veya herhangi bir yerel gruplamasındaki posta kutularına gitmek için sıraya konulduğunu tahmin ediyorum.)

Exchange noktasından gönderilen postaların eşdeğeri gibi görünüyor. Exchange Domain ve bu alandan daha geniş dünyaya gönderilenler.

Her neyse. Uzak Kuyruk Uzunluğu, tüm hikayeyi anlatmaz. Ayrıca, Uzak Yeniden Deneme Kuyruğuna, Mevcut Giden Bağlantıların sayısına ve kemer dizgileri için kuyruk dizisindeki gerçek dosya sayısına bakmalısınız.

İşte nedenleri:

  • Uzaktan Kuyruk: henüz gönderilmemiş olan tüm mesajlar, bu denendi ancak birçok kez. Şu anda açık olan bağlantılarına atanan postalarının sayısı, "deneniyor" durumunda oldukları için sayılmaz.
  • Uzaktan Yeniden Deneme Kuyruğu: adresindeki tüm iletiler, adresinde, teslim için açık bir bağlantıya atanmış, henüz gönderilmemiştir. Açıktır ki, teslimat başarısız olmalı veya iletinin teslim edileceği olmalıdır. Şu anda için bir yeniden deneme için atanan tüm iletiler sayılmaz.
  • Geçerli Giden Bağlantılar: sunucusunun sıralı postalarını göndermeye çalıştığı zaman, giden bir bağlantı için birden fazla ileti atanmış olabilir. Bu şekilde atanan iletiler, Uzak Kuyrukta veya Uzaktan Yeniden Deneme kuyruğunda sayılan değildir. Fiziksel
  • Kuyruk dizinindeki dosyalar: Bu , kuyruk dizisini hala Kuyruk dizininde gösterir. Postalar başarıyla teslim edildiğinden azalacaktır.

Örnek: Bir yeniden deneme bayraklar göndere çekildiği anda ardından Uzaktan Kuyruk, yeniden dene Kuyruk ve Fiziksel dosyaları tüm 50'de okuyacak Kuyruk dizininde 0 giden bağlantıları ve 50 postalar varsa (bu ayardır IIS'de) bağlantı sayısı artar ve sıralardaki posta sayısı azalır. Bir posta teslim edilene kadar, fiziksel dosya sayısı aynı kalır. Ancak, geçerli bir bağlantıda birden fazla posta gönderilebildiği için 1 bağlantı, Uzak Kuyruk ve Yeniden Deneme Kuyruğu uzunluklarının 47 veya daha düşük olmasıyla sonuçlanabilir. Yeniden deneme olayı sırasında, herhangi bir posta başarıyla teslim edilirse, Queue dizinindeki fiziksel dosya sayısı azalır. Bağlantı sıralarını kapattığında sayaçların tümü tekrar dengelenmelidir. Bu mümkündür

açılıyor

.Net'in Posta kitaplığı, IIS varsayılanından ayrı bir Alım dizini belirtin. Burada postaları sıraya koyabilir ve posta hizmetlerini zaman zaman IIS hizmetinin alacağı ve sıraya alınmış postaları göndereceği IIS dizinine taşıyabileceğiniz özel bir hizmet alabilirsiniz.

Bunu yapmak için SmtpDeliveryMethod.SpecifiedPickupDirectory olarak ayarlanması gereken SmtpClient nesnesinin "DeliveryMethod" özelliğini arıyor olacaksınız.

SpecifiedPickupDirectory değerini ayarlamak için SmtpClient'ın PickupDirectoryLocation özelliğini ayarlamanız gerekir.

Postalar bu konuma teslim edildiğinde .eml dosyaları olarak saklanır. Dosya adı bir GUID'dir. Bu, birden çok e-postaların temelde rastgele bir sırada gönderileceği anlamına gelir. Teorik olarak, istenirse bu durumu ele almak için kod yazabilirsiniz. .eml dosyası, not defteri içinde .eml açılarak okunabilen standart bir formatı izler. Ayrıştırma, bir günlük için bilgi almanızı sağlar.

Umarım, IIS'de SMTP sunucusunun çalışma şeklinin bu yüksek düzeydeki genel görünümü, Mart ayında bulunduğum yere benzer bir konumda birilerine yardımcı olur.

1

Ben SMTP Servisi'nin Yerel sırası uzunluğu sayacını okumak için PerformanceCounter bileşeni kullanmak. Bu sizin kontrolünüzde kalmalıdır :-)

0

Eğer .net parçacığınız ısmarlıyorsa, neden sadece çıkışını biraz (tanımlanabilir) iş hacmine düşürmeyin?

Alternatif olarak, SMTP sunucusu için bazı kayıt defteri ayarlarıyla çalışabilirsiniz.

http://blog.rednael.com/CommentView,guid,dc20366c-3629-490a-a8ee-7e8f496ef58b.aspx

Görünüşe da yararlı bilgiler verecektir bazı WMI sayaçları (Uzaktan Yeniden Deneme Kuyruk Uzunluğu \ Uzaktan Kuyruk Uzunluğu ve SMTP sunucusu \ SMTP Sunucusu) vardır. Şimdi yaş için bu proje üzerinde çalışıyoruz ve ben dünya ile benim bulguları paylaşmak düşündüm bu yüzden

http://www.tech-archive.net/Archive/Internet-Server/microsoft.public.inetserver.iis.smtp_nntp/2008-02/msg00011.html