Trivial SMTP ASP.NET Winsock Connectivity Issues

Posted on

ASP.NET C#Lately I have been experiencing issues with running SMTP on ASP.NET 1.1 on a Windows Server specifically the Standard edition. It was a trivial issue and very difficult to trace. The problem would appear in just a day and sometimes will disappear for weeks. The issue has been attributed to a Winsock crash (ASP.NET informs this through the error page). I have not found I have not found any blogs that tackle this issue so I hope this post will help others.

This issues are posted by me in StackOverflow and ServerFault :

The server specifications are below and my notes on the issue:

Windows Server Standard on SP2
IIS 7 with ASP.NET 1.1
IIS 6 for SMTP

The server hosts many websites running ASP.NET 1.1. These websites use the built in SMTP server on IIS6.

The SMTP works fine for a while but after a few weeks or months, It will stop sending emails. I tried sending one via Telnet it seems fine so the SMTP server is not the issue.

I tried restarting the Application Pools but it had not effect whatsoever. I also tried restarting IIS 7.0 and IIS 6.0 it still will not send messages.

The only temporary way we found to fix this was to restart the server.

Is there an ASP.NET cache that we can clear or is causing this issue?

UPDATE:

Got the fix!

It was a hunch but I restarted the Print Spooler and DNS Client services in the server and now emails are sent successfully.

But I still do now know why this happens for ASP.NET 1.1 projects.

UPDATE 2:

Issue appeared again today! I got lucky I thought I had to wait weeks to test it again.

I started by restarting the DNS Client service. No effect still cannot send emails. I then restarted the Print Spooler service and to my surprise it was the culprit! ?????????

How is this even, what, why? huh?

I disabled the Print Spooler permanently. Email still works. I do not think we print anything or if the Print Spooler does any other tasks other than printing.

If it does do anything please comment below.

UPDATE 3:

The fix was temporary. I found out today that WINSOCK refused connections from ASP.NET but accepted connections via telnet mail.

Still trying to find out why this is happening.

UPDATE 4:

Well finally made a reboot with the WINSOCK corruption fixes applied. Hope this holds forever and the bug does not reappear.

FINAL UPDATE:

After a few weeks of debugging and fix finding the only workaround for this would be to either reboot the server regularly, move to System.Net.Mail instead of System.Web.Mail or use Microsoft SQL Server DBMail.