问题描述
我用vs内部的邮件发送没有问题,可是放到iis上面就出了这个问题:WSAStartup目前不能正常工作。说明:执行当前Web请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。异常详细信息:System.Net.Sockets.SocketException:因为它使用提供网络服务的系统目前无效,WSAStartup目前不能正常工作。源错误:行35:SmtpClientstmp=newSmtpClient("smtp.sina.com.cn");行36:stmp.Credentials=newSystem.Net.NetworkCredential("test","123456");行37:stmp.Send(mail);行38:Response.Redirect("~/Default.aspx");行39:是怎么回事?谢谢了
解决方案
解决方案二:
把smtp.sina.com.cn改为:smtp.sina.com另外,请用一个真正帐号与密码来试.
解决方案三:
另外确认邮件端口25是开放的
解决方案四:
我使用的是真正的用户名密码,在vs内置服务器一切正常,但是在IIS下就出问题,刚才看了下25端口是打开的,2003的防火墙没开,在防火墙里允许Smtp问题不在出现但是出现新的问题:System.Net.Sockets.SocketException:远程主机强迫关闭了一个现有的连接。[SocketException(0x2746):远程主机强迫关闭了一个现有的连接。]System.Net.Sockets.Socket.Receive(Byte[]buffer,Int32offset,Int32size,SocketFlagssocketFlags)+1018075System.Net.Sockets.NetworkStream.Read(Byte[]buffer,Int32offset,Int32size)+119[IOException:无法从传输连接中读取数据:远程主机强迫关闭了一个现有的连接。。]System.Net.Sockets.NetworkStream.Read(Byte[]buffer,Int32offset,Int32size)+267System.Net.DelegatedStream.Read(Byte[]buffer,Int32offset,Int32count)+41System.Net.BufferedReadStream.Read(Byte[]buffer,Int32offset,Int32count)+96System.Net.Mail.SmtpReplyReaderFactory.ReadLines(SmtpReplyReadercaller,BooleanoneLine)+280System.Net.Mail.AuthCommand.Send(SmtpConnectionconn,Stringtype,Stringmessage)+57System.Net.Mail.SmtpConnection.GetConnection(Stringhost,Int32port)+1462System.Net.Mail.SmtpTransport.GetConnection(Stringhost,Int32port)+316System.Net.Mail.SmtpClient.GetConnection()+42System.Net.Mail.SmtpClient.Send(MailMessagemessage)+1485[SmtpException:发送邮件失败。]System.Net.Mail.SmtpClient.Send(MailMessagemessage)+2074tests_baoer_exception_Email.btnEmail_Click(Objectsender,EventArgse)ine:inetpubwwwrootAuditKMSpageserroPagesEmail.aspx.cs:39System.Web.UI.WebControls.Button.OnClick(EventArgse)+105System.Web.UI.WebControls.Button.RaisePostBackEvent(StringeventArgument)+107System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(StringeventArgument)+7System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandlersourceControl,StringeventArgument)+11System.Web.UI.Page.RaisePostBackEvent(NameValueCollectionpostData)+33System.Web.UI.Page.ProcessRequestMain(BooleanincludeStagesBeforeAsyncPoint,Boolean仍然在Vs的内置服务器发送没问题,我怀疑是不是IIs中什么地方需要设置。谢谢楼上了。