2013-12-19 26 views
4

我用Mscaptcha在我的网站上显示。它在本地运行良好,但图片未显示在服务器中。为什么?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

我斗胆猜测 - 是你的服务器实际上是在IIS集成模式下运行?如果不是,则必须使用'system.web/httpHandlers'而不是'system.webServer/handlers' config部分。 – Luaan

+0

现在检查它 – Farzaneh

+0

它的工作,谢谢:) – Farzaneh

回答

3

(发布评论)

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

既然我们现在已经确认您的本地服务器在集成模式下运行,而远程服务器在经典模式下运行时,你应该确保你的配置尽量接近生产机器尽可能发展。这可能意味着您必须在开发机器上安装和配置IIS(例如,Force IIS Express to Classic Pipeline Mode)。

经典和集成模式,可以在实践中是非常不同的,你可能会得到一个很大的问题,不需要在一个综合存在,反之亦然经典服务器上。

+0

嗨,即使我面临类似的问题。我正在使用system.web/httpHandlers,但验证码图像仍然空白。如何检查服务器是以IIS集成模式还是经典模式运行? – Arti

+0

@ user1650891您可以在应用程序域列表中看到该模式。 – Luaan

+0

谢谢,我用的System.Web/HttpHandlers的以及system.webServer /处理器配置Mscaptcha和它的工作。 – Arti

2

我有同样的问题,因为个.axd没有权限问题被引起的。在web.config中添加这些行,以允许访问个.axd

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

+0

不错,谢谢! –

相关问题