AjaxPro работает локально, но на сервере я получаю ошибки .ashx - PullRequest
6 голосов
/ 09 февраля 2009

Локально мое приложение работает нормально, используя ajaxpro, но на сервере я не могу понять, почему оно не работает.

с помощью firebug у меня есть следующие ошибки:

GET prototype.ashx 404 не найден ПОЛУЧИТЬ core.ashx 404 не найдено ПОЛУЧИТЬ ms.ashx 404 не найдено

Тот же код работает локально, поэтому это должен быть параметр IIS7?

edit, my web.config

<httpHandlers>
            <add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro"/>
        </httpHandlers>

также имеет:

<location path="ajaxpro">
        <system.web>
            <httpHandlers>
                <add verb="POST,GET" path="*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro"/>
            </httpHandlers>
            <authorization>
                <allow users="*"/>
            </authorization>
        </system.web>
    </location>

и

<location path="ajaxpro/prototype.ashx">
        <system.web>
            <authorization>
                <allow users="*"/>
            </authorization>
        </system.web>
    </location>
    <location path="ajaxpro/core.ashx">
        <system.web>
            <authorization>
                <allow users="*"/>
            </authorization>
        </system.web>
    </location>
    <location path="ajaxpro/converter.ashx">
        <system.web>
            <authorization>
                <allow users="*"/>
            </authorization>
        </system.web>
    </location>

Ответы [ 7 ]

9 голосов
/ 10 апреля 2009

Чтобы AjaxPro.dll работал в IIS7, вам нужно установить PipelinMode пула приложений в Классический вместо Интегрированного.

Я пытался найти это повсюду, но в итоге это и спасло меня.

5 голосов
/ 28 мая 2009

Чтобы запустить Ajax.NET в IIS7 (то есть в Windows Vista) в интегрированном режиме вместо классического, необходимо проверить две вещи:

  1. Сначала убедитесь, что группа IIS_ISSRS имеет доступ к папке вашего веб-сайта. Если вы используете папку по умолчанию для веб-сайтов с Visual Studio .NET 2005, самый простой способ - добавить доступ для чтения по адресу C: \ Users \ Имя пользователя \ Documents \ Visual Studio 2005 \ WebSites.
  2. Запустите следующую команду, чтобы автоматически перенести файл web.config: % windir% \ system32 \ inetsrv \ Appcmd migrate config ""

Ключевым изменением для Ajax.NET Professional является то, что вам нужно переместить httpHandler (и httpModule, если используется) в новый раздел system.webServer и переименовать httpHandler в handler; Затем вы должны добавить атрибут имени для обработчика:

<configuration>

    <location path="ajaxpro">
        <system.webServer>
            <handlers>
                <add verb="*" path="*.ashx" name="AjaxPro" 
                     type="AjaxPro.AjaxHandlerFactory,AjaxPro.2" />
            </handlers>
        </system.webServer>
    </location>

</configuration>
2 голосов
/ 06 декабря 2010

Я уже несколько часов бьюсь головой об этой проблеме, и я думаю, что, возможно, я только что нашел решение ... и это, скорее, ошибочно ... расстраивает.

В web.config, system.webServer / handlers, может быть более одного элемента, который обрабатывает * .ashx

например:

<add name="AjaxPro" verb="POST,GET,HEAD" path="ajaxpro/*.ashx" ...
<add name="SimpleHandlerFactory-Integrated" path="*.ashx" ...
<add name="SimpleHandlerFactory-ISAPI-2.0" path="*.ashx" ...
<add name="SimpleHandlerFactory-ISAPI-2.0-64" path="*.ashx" ...

Если запись ajaxpro на ниже , она не будет использоваться, так как эти записи сначала совпадают. Перемещение записи ajaxpro над остальными может решить проблему.

Я понятия не имею, почему Кассини не возражает, но IIS7 делает ...

1 голос
/ 27 января 2014
<configuration>

    <location path="ajaxpro">
        <system.webServer>
            <handlers>
                <add verb="*" path="*.ashx" name="AjaxPro"
                     type="AjaxPro.AjaxHandlerFactory,AjaxPro.2" />
            </handlers>
        </system.webServer>
    </location>

</configuration>

Windows 2008 \ IIS 7 не имеет сопоставления обработчика axd, настроенного по умолчанию для использования Ajax, поэтому вам нужно добавить следующий код в файл web.config, если вы хотите использовать Ajax и находитесь в одной из наших Windows 2008 хостинг планы.

<system.webServer>
        <handlers>
            <add name="Ajax" path="*.axd" verb="*" modules="IsapiModule"
scriptProcessor="C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll"
resourceType="Unspecified"
preCondition="classicMode,runtimeVersionv2.0,bitness32" />
        </handlers>
</system.webServer>

или скопируйте .dll в папку bin и попробуйте:

<httpHandlers>
<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax"/>

</httpHandlers> in <system.web>
1 голос
/ 09 февраля 2009

Вы уверены, что обработчики правильно зарегистрированы в файле web.config?

В вашем файле web.config должно быть что-то похожее на следующее.

<location path="ajaxpro">
    <system.web>
        <httpHandlers>
            <add verb="*" path="*.ashx"
                 type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/>
        </httpHandlers>
    </system.web>
</location>

Вам также необходимо иметь dll AjaxPro в каталоге Bin (по крайней мере для веб-сайта).

0 голосов
/ 07 ноября 2013

Я получил эту ошибку (ajaxpro / core.ashx 404 не найден) после переноса моей веб-формы в MVC 4

Я решил, добавив эту строку в app_start / routeconfig

routes.IgnoreRoute("ajaxpro/{*pathInfo}");

Мой web.config не нуждался в дополнительных объявлениях, но этот

<httpHandlers>
        <add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro"/>
    </httpHandlers>

и, конечно же, ссылка на ajaxpro.2.dll, размещенную в моей папке bin

Надеюсь, это будет полезно!

0 голосов
/ 16 июня 2009

У меня просто была та же ошибка, но, вероятно, по другой причине, чем вы. Я получил его на новом веб-сайте (работающем локально), потому что веб-сайт использовал пользовательский модуль перезаписи URL, который не исключал .ashx!

Таким образом, для меня было решение убедиться, что модуль перезаписи исключил пути с помощью .ashx ...

...