2013-12-19 2 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' вместо' config.system.webServer/handlers'. – 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, все же изображение captcha становится пустым. Как проверить, работает ли сервер в интегрированном режиме 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

Хороший, спасибо! –

Смежные вопросы