【发布时间】:2019-09-28 12:46:30
【问题描述】:
通用处理程序在托管环境中不返回响应
我正在尝试托管使用 ASP.NET 构建的应用程序。它有一个简单的 html 文件调用 javascript,其中我有一个 ajax 调用请求来自通用处理程序(.ashx)的响应。该应用程序在我的本地运行良好,但在托管环境中无法运行。
当我在托管网站上调试 javascript 时,它返回的响应是
" \r\n" in 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
}
}
});
这是我的处理程序:
GetInfo.ashx.cs
public class GetInfo: IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.Write(JsonConvert.SerializeObject (new { status = "OK" }));
}
}
【问题讨论】:
-
如果你给 ProcessRequest 添加一个断点,它会停在那里吗?
-
在本地?是的。我也得到了 data.status = OK 的响应。
-
托管是指 Azure 吗?那是因为 .ashx 没有被映射到 web.config 文件上的通用处理程序。
-
我将它托管在第三方托管服务器上,并且我使用的数据库是天蓝色的。但是,我一直在阅读有关 .ashx 应该添加到 web.config 文件的信息,但找不到如何去做。你能给我一个关于如何添加它的链接吗?为什么它在本地工作?无需将 .ashx 添加到 web.conifg。
-
因为在本地你的全局配置文件 machine.config 中有它。见stackoverflow.com/questions/24056966/…。
标签: javascript c# generic-handler