我在我的网站上使用了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" />
感谢。
答案 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>