带有jquery的ASMX在本地工作,但在部署到IIS 6.0时则不行

时间:2011-10-26 03:31:27

标签: jquery asmx

我有一个简单的jquery调用,试图从ASMX服务返回一些XML。此调用在本地运行,但在部署了带有.ajax()调用的服务和页面后,我只是在Web服务调用上“旋转”。

我确保ASPNET用户帐户具有访问ASMX所在文件夹的相应权限。另外,在部署到服务器之前,我已将以下行添加到web.config中:

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

当我把它放在萤火虫检查电话时,我看到了标题,但是帖子和响应都没有,它只是“旋转”。我从来没有得到任何错误,我只是不停地旋转。

html页面和Web服务位于同一个域中(甚至在同一个文件夹中)。

谢谢。

更新:我现在已经阅读了关于将。[webmethod]添加到.aspx页面上的静态方法(即default.aspx)(link)的Encosia文章。我现在可以在本地调用这些方法而不会出现问题,但是当我部署到IIS 6.0时,我得不到任何响应。这使得.asmx调用脱离了等式,我留下了一些更基本的东西。我错过了什么配置部分允许任何$ .ajax()操作到本地页面工作?

1 个答案:

答案 0 :(得分:1)

你的版本我的变化:

<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>