操作超时错误

本文关键字:错误 超时 操作 | 更新日期: 2023-09-27 18:18:38

我撞上了墙与reCaptcha.net

一些背景我使用的是reCaptcha-dotnet v1.0.5,我从http://code.google.com/p/recaptcha/downloads/list?q=label:aspnetlib-Latest得到。

我能够开发一个网站,使其与验证码本地工作。当我将其部署到服务器时(该站点托管在1and1.com上),我得到以下错误-

操作已超时

描述:在执行过程中发生未处理的异常当前的web请求。请查看堆栈跟踪了解更多信息有关错误及其在代码中的起源的信息。

Exception Details: system.net.webeexception:操作已超时

我已经检查了谷歌论坛,建议让服务器允许从端口80出站连接。我试着向1and1.com的技术支持解释这一点,但我认为他一点也不知道。

除了上面的,有什么我可以做代码明智地解决这个问题吗?有人想出解决办法了吗?

感谢任何建议!

操作超时错误

这是我使用的邮件配置和验证码代理的网站是托管在1and1的代码:

1 - Web。配置(只有放在那里才有效)

<system.net>
    <mailSettings>
         <smtp from="mail@domain.com">
            <network host="smtp.1and1.com" port="25" userName="mymail@domain.com" password="mypassword"/>
         </smtp>
    </mailSettings>
    <defaultProxy>
        <proxy usesystemdefault = "false" bypassonlocal="false" proxyaddress="http://ntproxyus.lxa.perfora.net:3128" />
    </defaultProxy>
</system.net>

2-在mycontroller中的专用动作:

// ouside the action I've defined the response
private class gapi {public bool success{get;set;}}
public bool SendMail(string firstname, string lastname, string email, string message, string grecaptcha)
{
    SmtpClient smtp = new SmtpClient("smtp.1and1.com");
    MailMessage mail = new MailMessage();
    mail.From = new MailAddress(email);
    mail.To.Add("mail@domain.com");
    mail.Subject = firstname + " " + lastname;
    mail.Body = message;
    try
    {
        using (var client = new WebClient())
        {
            var values = new NameValueCollection();
            values["secret"] = "6LcEnQYTAAAAAOWzB44-m0Ug9j4yem9XE4ARERUR";
            values["response"] = grecaptcha;
            values["remoteip"] = Request.UserHostAddress;
            var response = client.UploadValues("https://www.google.com/recaptcha/api/siteverify","POST", values);
            bool result = Newtonsoft.Json.JsonConvert.DeserializeObject<gapi>((Encoding.Default.GetString(response) as string)).success;
            if(!result) return "Something is wrong)";
        }
        //... verify that the other fields are ok and send your mail :)
        smtp.Send(mail);
    }
    catch (Exception e) { return "Something is wrong)"; }
    return "Okey :)";
}

最后得到了解决方案,我从1and1得到了正确的代理服务器地址并使用了它。验证码现在可以正常工作了

另外,由于某种原因,使用reCaptcha控件的IWebProxy属性在代码中设置代理值不起作用。我必须在网页上添加标签。