我在内联网上有一个基本上发送电子邮件的网络服务。
在各种Web应用程序中 - 当要向几百人发送电子邮件时,主题,收件人列表等存储在数据库中,并且对Web服务进行异步调用以发送电子邮件。
Service1 myMailService = new Service1();
myMailService.SendMailAsync(EmailID);
Web服务从数据库中检索数据,并通过发送电子邮件的收件人进行操作。发送几百封电子邮件可能需要几分钟时间。这个过程没问题 - 因为电子邮件(通常)会被发送。
但是,似乎有3个人都打开了应用程序,并且几乎同时发送电子邮件,并非所有请求都被处理。就好像Web服务无法处理同时发出的请求。我一直假设一个Web服务能够处理同时发出的请求并自己处理线程。
默认情况下,Web服务是否能够同时处理请求?
这是运行IIS 7的Windows Server Standard - Service Pack 2
网络服务非常简单。
public class Service1 : System.Web.Services.WebService
{
[SoapDocumentMethod(OneWay = true)]
public void SendMail(int EmailID)
{
//connect to the database, get a DataSet containing MessageDetails, List of Attachments, List of Recipients
//loop through the various data tables in the DataSet to get the data to create the email
//there are lots of try/catch/finally statements to make sure the database connection is closed
//send the email
smtpClient.Host = "myServer";
smtpClient.Send(message);
}