首页 > 解决方案 > 通用处理程序未在托管环境中返回响应

问题描述

通用处理程序不返回托管环境的响应

我正在尝试托管使用 ASP.NET 构建的应用程序。它有一个简单的 html 文件调用 javascript,其中我有一个 ajax 调用请求来自通用处理程序(.ashx)的响应。该应用程序在我的本地运行良好,但它不适用于托管环境。

当我在托管站点上调试 javascript 时,它返回的响应是

"<%@ WebHandler Language=\'C#\' CodeBehind=\"GetInfo.ashx.cs" Class=\"MyProject.GetInfo\" %> \r\n" 在 ajax 上的成功数据元素中。

我是这个主机的新手,我不确定我的 ajax 请求是错误的还是发布错误。我只是在 Visual Studio 上使用了简单的发布选项,并将所有文件发布到托管环境。

这是我的ajax请求:

            $.ajax({
                type: "GET",
                url: "/Handlers/GetInfo.ashx",
                contentType: "application/json; character=utf-8",
                success: function (data) {
                    if (data.status == "OK") {
                     //some code here

                    }
                }
            });

这是我的处理程序:

获取信息.ashx.cs

public class GetInfo: IHttpHandler
{

    public void ProcessRequest(HttpContext context)
    {
       context.Response.Write(JsonConvert.SerializeObject (new { status = "OK" }));   

    }

}

标签: javascriptc#generic-handler

解决方案


确保你的 web.config 文件中有这个(本地它应该在全局 web.config 中):

<system.web>
  <httpHandlers>
    <add path="*.ashx" verb="*" type="System.Web.UI.SimpleHandlerFactory, System.Web" validate="True"/>
  </httpHandlers>
</system.web>

推荐阅读