我按照说明如何将Recaptcha添加到我的网站(asp.net 4.0,Visual Studio / VB。当我在本地运行页面时,这只是一个发送电子邮件的简单联系表单页面, recaptcha的事情很好。但我不是程序员。
当我将其移至生产环境时 - 我将网站(以及dll和pdb移动到app_code文件夹和bin文件夹,Visual Studio自己创建),该页面不仅会刷新而且永远不会发送一封电子邮件 - 如果你在recaptcha文本框中输入正确或错误的东西,这无关紧要。如果没有重新访问代码,contact.aspx页面将正常运行并立即发送电子邮件。
但是重新开始的盒子就在那里。我在IIS和我的web.config中读过有关处理程序映射的内容,但我不够聪明,无法理解我是否必须做任何事情,以及该怎么做。我这里也有IIS 7.0。
更新: 当您在文本框中正确输入recaptcha信息时,页面将显示我编码的确认,并发送电子邮件。如果您没有正确输入重新获取信息,而不是发送“请再试一次”消息,它只会刷新页面并让它们重新开始。它没有说“请再试一次”,并且不会让客户知道他们错误输入了代码
答案 0 :(得分:5)
您是否正在使用带Recaptcha.dll的reCAPTCHA ASP.NET control?
您需要使用域名注册该服务。您收到的公钥和私钥将根据此域进行检查:
reCAPTCHA仅适用于此域和子域。
请注意以下管理页面截图:
但是此规则不适用于localhost域,这是您在使用Visual Studio进行开发时使用的域。因此,您可能没有使用注册域名时收到的密钥。当您选择控件并在Visual Studio中从设计视图切换到代码视图时,控制代码应该如下所示,并带有键:
<recaptcha:RecaptchaControl ID="recaptcha" runat="server"
PublicKey="6Lexn8wSAAAAAIfH1c3-6K3FbSjcKdMj3uiMImI7"
PrivateKey="6Lexn8wSAAAAAKRFTJXTudJN1owrIQMDahwYv0hg" />
如果没有,您必须输入密钥。这只是一个示例,请勿使用这些密钥,请将您自己帐户中显示的密钥用于您自己的域。