Mscaptcha在当地工作得很好,但图片没有在服务器上显示

时间:2013-12-19 16:49:18

标签: asp.net

我在我的网站上使用了Mscaptcha。它在本地工作得很好,但图片没有在服务器上显示。为什么呢?

我在web.config中的代码:

            

<system.webServer>
<handlers>
<add name="MSCaptcha" verb="GET" path="CaptchaImage.axd" type="MSCaptcha.CaptchaImageHandler, MSCaptcha"/>
</handlers>
</system.webServer>

在.aspx中:

<%@ Register Assembly="MSCaptcha" Namespace="MSCaptcha" TagPrefix="cc1" %>

 <cc1:CaptchaControl ID="CaptchaControl1" runat="server" Height="50px" 
                                    Width="180px" CaptchaLength="5" BackColor="White" 
                                    EnableViewState="False" />

感谢。

2 个答案:

答案 0 :(得分:3)

(发表评论)

我猜想 - 您的服务器实际上是在IIS集成模式下运行吗?如果没有,则必须使用system.web/httpHandlers代替system.webServer/handlers配置部分。

由于我们现在已确认您的本地服务器在集成模式下运行,而您的远程服务器在经典模式下运行,因此您应确保使用尽可能靠近生产计算机的配置进行开发。这可能意味着您必须在开发计算机上安装和配置IIS(例如,Force IIS Express to Classic Pipeline Mode)。

经典和集成模式在实践中可能会有很大不同,您可能会在Classic服务器上遇到很多问题,而这些问题在集成服务器上不存在,反之亦然。

答案 1 :(得分:2)

我遇到了同样的问题,问题是由于.axd没有权限造成的。在web.config中添加这些行以允许访问.axd

<location path="CaptchaImage.axd">
<system.web>
  <authorization>
    <allow users="*" />
  </authorization>
</system.web>