ASMX с jquery работает локально, но не при развертывании в IIS 6.0 - PullRequest
1 голос
/ 26 октября 2011

У меня есть простой вызов jquery, который пытается вернуть XML из службы ASMX.Этот вызов работает локально, но после развертывания службы и страницы с вызовом .ajax () я получаю только «раскрутку» при вызове веб-службы.

Я убедился, что учетная запись пользователя ASPNET имеетсоответствующие права для доступа к папке, где находится ASMX.Кроме того, я добавил следующие строки в файл web.config перед развертыванием на сервере:

<webServices>
    <protocols>
        <add name="HttpGet"/>
        <add name="HttpPost"/>
    </protocols>
</webServices>

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

HTML-страница и веб-служба находятся в одном домене (даже в одной папке).

Спасибо.

ОБНОВЛЕНИЕ: я прочитал статью Encosia о добавлении [webmethod] к статическим методам на страницах .aspx (т. Е. Default.aspx) ( ссылка ).Теперь я могу вызывать эти методы локально без проблем, но при развертывании в IIS 6.0 я не получаю ответа.Это исключило вызов .asmx из уравнения, и у меня осталось нечто более фундаментальное.Какой раздел конфигурации мне не хватает, чтобы разрешить любую операцию $ .ajax () для локальной страницы?

1 Ответ

1 голос
/ 26 октября 2011

ваша версия может варьироваться:

<system.web>
    <httpHandlers>
        <remove verb="*" path="*.asmx"/>
        <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </httpHandlers>
</system.web>

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

РЕДАКТИРОВАТЬ: просто проверяет, но добавили ли вы дополнение и разрешаете JSON (при условии, что вы его используете):

<system.web.extensions>
    <scripting>
        <scriptResourceHandler enableCaching="true" enableCompression="true" />
        <webServices>
            <jsonSerialization maxJsonLength="5000000"/>
        </webServices>
    </scripting>
</system.web.extensions>

<system.web>
    <webServices>
        <protocols>
            <add name="HttpGet"/>
            <add name="HttpPost"/>
        </protocols>
    </webServices>
</system.web>
...