操作超时错误
本文关键字:错误 超时 操作 | 更新日期: 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属性在代码中设置代理值不起作用。我必须在网页上添加标签。