.ashx是怎么被调用的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.ashx是怎么被调用的?相关的知识,希望对你有一定的参考价值。

这是一。ashx文件<%@ WebHandler Language="C#" Class="GetMap" %>using System;using System.Web;using System.Web.SessionState;using MapgisWSClient;public class GetMap : IHttpHandler, IRequiresSessionState public void ProcessRequest (HttpContext context) try byte[] bt; double xmin = Convert.ToDouble(context.Request.QueryString["LogicMinX"]); double ymin = Convert.ToDouble(context.Request.QueryString["LogicMinY"]); double xmax = Convert.ToDouble(context.Request.QueryString["LogicMaxX"]); double ymax = Convert.ToDouble(context.Request.QueryString["LogicMaxY"]); int width = Convert.ToInt32(context.Request.QueryString["ImageWidth"]); int height = Convert.ToInt32(context.Request.QueryString["ImageHeight"]); int layerNo = Convert.ToInt32(context.Request.QueryString["layerNo"]); bool isEagle = Convert.ToBoolean(context.Request.QueryString["IsEagle"]); MapDisplay.CheckViewport(); CSingleMapView viewport = (CSingleMapView)HttpContext.Current.Session["viewport"]; Rect rc = new Rect(xmin,ymin,xmax,ymax); bt = viewport.GetMapImage(rc,width,height,ImgFormat.gif); context.Response.BinaryWrite(bt); catch ErrorHandler.ResponseErrorMessageImage(); public bool IsReusable get return false; 这是网站的一个GetMap.ashx文件,网站可以运行。全部文件里就在一个。xml文件里看到了这个文件一个配置<vectImageUrl>GetMap.ashx</vectImageUrl>没看到别处调用这个文件啊,但是一步步的执行看到这个文件确实不知咋的被调用了,实在搞不清是咋被调用的?又没人告诉我下。ashx文件怎么调用,(网上查了好多,但没看到这种用法)?

参考技术A ashx文件是一般处理文件,你可以理解为是在服务器端运行的文件。我一般都是用异步处理的时候调用ashx文件,很方便。你可以在前台页面或这个页面引用的JS文件中查找这个ashx文件的名称,然后顺藤摸瓜就可以啦

ashx页面怎么调用Handler的Session

aspx里面直接可以用Session["Name"]进行赋值和取值,ashx中就得继承接口IRequiresSessionState。然后使用!

实现:

public class UserInfo : IHttpHandler, IRequiresSessionState
{

    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/plain";
        var userinfo = context.Session["userinfo"];
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}

  

下面的代码示例检查当前的 HTTP Handler 属性来确定是否需要读取和写入访问为会话状态的值。

bool requiresSession = false;if (Context.Handler is IRequiresSessionState)
  requiresSession = true;
 

文章引用:http://code365.club/Article?id=19

以上是关于.ashx是怎么被调用的?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 JavaScript 调用 ASHX?

通过调用 .ashx 页面下载文件

在一个aspx或ashx页面里进行多次ajax调用

哪一个更适合 jQuery.ajax 调用? .Net Web 服务还是 .ashx?

在 MVC 中如何通过 jquery 调用 .ashx 处理程序文件

Ajax 调用(传值)一般处理程序(.ashx)