私はasp.net 4.0 Webサイトを持っており、パスワードを忘れたフォームに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 を実行したところ、 への呼び出しで SQL Server から例外がスローされていることがわかりましたdbo.aspnet_Membership_GetUserByName
。DateTime
PasswordRecovery が秒の小数点以下 7 桁のパラメーターを渡しているため、型変換の問題があります。小数点以下 3 桁のストアド プロシージャを手動で実行すると、動作します。サーバーとラップトップでパラメーターの精度DateTime
が異なる理由を知っている人はいますか?