我有一个asp.net 4.0网站,我正在使用PasswordRecovery控件来创建一个忘记密码的表单。当我在本地运行这个站点时,它工作得很好,电子邮件也会被发送。但是,当我从我的vps运行站点时,我在尝试发送电子邮件时收到错误消息。服务器的事件日志中没有任何内容。
我的PasswordRecovery aspx代码如下:
<asp:PasswordRecovery ID="PasswordRecovery1" runat="server"
CssClass="mediumText">
<MailDefinition From="noreply@x.com" BodyFileName="~/EmailTemplates/PasswordRecovery.txt" />我的web.config邮件设置如下:
<system.net>
<mailSettings>
<smtp from="noreply@x.com">
<network host="smtp.123-reg.co.uk" password="x" userName="x" />
</smtp>
</mailSettings>
</system.net>现在,我已经对SQL Server Express实例运行了SQL Profiler,结果发现在调用dbo.aspnet_Membership_GetUserByName时,SQL Server抛出了一个异常。存在类型转换问题,因为PasswordRecovery传递了一个带有7个小数位的DateTime参数。如果我手动执行小数点后3位的存储过程,那么它可以工作。有人知道为什么我的服务器上的DateTime参数的精度与我的笔记本电脑上的不同吗?
发布于 2012-02-18 03:16:31
正如您将从阅读this issue和后续响应中看到的那样,您看到的DateTime精度问题只是由于SQL Profiler以错误的格式显示日期造成的。这个问题与阻止您的电子邮件发送的原因无关。
当您尝试发送电子邮件时收到的错误消息是什么?这个问题很可能与阻止您的电子邮件发送到SMTP服务器有关。您是否使用计算机中的相同凭据发送到相同的SMTP?
发布于 2012-02-18 08:32:11
我认为这是从您的VPS到SMTP服务器的连接问题。您可以通过尝试使用telnet连接到SMTP服务器,在您的代码之外对此进行测试。按照以下链接中提到的步骤访问http://support.microsoft.com/kb/323350
发布于 2012-02-23 06:08:17
日期时间转换错误是在转移注意力。只有当您从探查器复制它并在management studio中执行它时,才会发生这种情况。这是一个已知的问题。
您可能想要阅读以下内容:http://forums.asp.net/t/1398826.aspx/1
听起来可能只是成员资格提供程序设置与密码不同。
我认为有两种可能性。
https://stackoverflow.com/questions/9251219
复制相似问题