在SharePoint 2013/2010 解决方案中添加 ashx (HttpHandler)

原创 2014年03月07日 22:09:41

本文讲述如何在 在SharePoint 2013/2010 解决方案中添加 ashx (HttpHandler)。

一般处理程序(HttpHandler)是·NET众多web组件的一种,ashx是其扩展名。一个httpHandler接受并处理一个http请求,类比于Java中的servlet。类比于在Java中需要继承HttpServlet类,在.net中需要实现IHttpHandler接口,这个接口有一个IsReusable成员,一个待实现的方法ProcessRequest(HttpContextctx) 。程序在processRequest方法中处理接受到的Http请求。成员IsReusable指定此IhttpHnadler的实例是否可以被用来处理多个请求。

.ashx程序适合产生供浏览器处理的、不需要回发处理的数据格式,例如用于生成动态图片、动态文本等内容。

下面笔者将介绍如何在SharePoint 2013/2010 解决方案中添加 ashx (HttpHandler):

1. 新建一个场解决方案

2. 映射 SharePoint 的Layout文件夹

3. 添加新项目


4. 选择Application page


5. 将Test.ashx的代码修改为

SharePoint 2013 (注意替换class name)

<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
<%@ Assembly Name="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ WebHandler Language="C#" Class="Testashx.Test" %>

SharePoint 2010(注意替换class name):

<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
<%@ Assembly Name="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ WebHandler Language="C#" Class="Testashx.Test" %>

6.  Test.ashx.cs 代码

using System;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using System.Web;

namespace Testashx
{
    public partial class Test : IHttpHandler
    {
        public bool IsReusable
        {
            get { return true; }
        }

        public void ProcessRequest(HttpContext context)
        {
            System.Web.Script.Serialization.JavaScriptSerializer jsonSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
            context.Response.ContentType = "application/json";
            var jsonResult = jsonSerializer.Serialize(new JosnResult (){Name="Abraham Cheng", Age= 29 });// return what you want
            context.Response.Write(jsonResult);
        }     
    }
    class JosnResult
    {
      public  string Name {get; set;}
       public int Age {get; set;}
    }
}
7. UnLoad 项目,编辑项目工程文件,在PropertyGroup节点中插入:

 <TokenReplacementFileExtensions>ashx</TokenReplacementFileExtensions>


8. Reload项目, 部署解决方案 

9. 验证

     a. SharePoint 2013  验证地址为 .../_layouts/15/xxx/Text.ashx

    b. SharePoint 2010 验证地址为 .../_layouts/xxx/Text.ashx

    打开以上地址就可以返回一个Json对象了

   


在实际应用可以用Ajax来请求Text.ashx来获取数据,展现在前台,达到不用刷新页面更新数据的目的。

           



升级到 SharePoint 2013 全策略

升级到 SharePoint 2013 全策略 准备升级 准备您的原始服务器场。确保您已为 Windows SharePoint Services 3.0 或 Office ...
  • jason_dct
  • jason_dct
  • 2015年03月18日 20:55
  • 1090

SharePoint 2013 本地创建解决方案

在之前的博客《SharePoint 2013本地开发解决方案以及远程调试》中,我们介绍了如何通过修改注册表,使SharePoint 2013 解决方案可以本地编辑,也提及了即使修改注册表,还不能做到本...
  • linyustar
  • linyustar
  • 2014年01月17日 16:44
  • 2633

Visual Studio 2013 添加一般应用程序(.ashx)文件到SharePoint项目

默认,在用vs2013开发SharePoint项目时,vs没有提供一般应用程序(.ashx)的项目模板,本文解决此问题。 以管理员身份启动vs2013,创建一个"SharePoint 2013 - ...
  • sygwin_net
  • sygwin_net
  • 2016年12月16日 09:14
  • 1576

SharePoint 2010 升级到SharePoint 2013的流程

我们知道SharePoint升级分为两种In-Place Upgrade和DB AttachUpgrade;但MOSS 2007升级到SharePointServer 2010的时候,支持上述...
  • ShelleyLiu0415
  • ShelleyLiu0415
  • 2015年11月02日 14:50
  • 1822

SharePoint 2010 vs SharePoint 2013

The most up to date comparison (especially with Office 365 information which changes frequently) can...
  • lingpaoershiyishiji
  • lingpaoershiyishiji
  • 2015年08月05日 19:32
  • 436

Sharepoint 2013与Sharepoint 2016的功能对比

开发人员功能 SharePoint Foundation 2013 SharePoint Server 2013 Standard CAL SharePoint Serv...
  • tom1995
  • tom1995
  • 2017年04月12日 20:20
  • 754

使用SharePoint自带的Workflow(一) 开启workflow

工作流提供了在线的无纸化自动化流程审批。SharePoint提供了完善的工作流基础,既可以用SharePoint自带的workflow,也可以通过SharePoint Designer或者Visual...
  • SPFarm
  • SPFarm
  • 2014年10月09日 22:41
  • 1925

SharePoint Server 2010 key

SharePoint Server 2010 keySharePoint Server 2010:(Enterprise) 6VCWT-QBQVD-HG7KD-8BW8C-PBX7TSharePoin...
  • tianlianchao1982
  • tianlianchao1982
  • 2011年05月31日 16:04
  • 1755

如何在sharepoint 2013中创建自定义webpart

概要:通过使用vs2012创建一个sharepoint2013的webpart   在sharepoint 2012中我们使用的是user control和一个定义webpart的文件(class),...
  • whxpower_163
  • whxpower_163
  • 2013年10月22日 17:16
  • 3183

通过Feature部署Sharepoint 2013的EventReceiver

Sharepoint 2013中对EventHandler的部署有不少改进。记录一下初步感受。 1. 生产Feature文件 在SP2013中对列表或文档库的部署可以不再用程序。可以通过按web等方式...
  • GetDC
  • GetDC
  • 2016年04月06日 14:19
  • 424
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在SharePoint 2013/2010 解决方案中添加 ashx (HttpHandler)
举报原因:
原因补充:

(最多只允许输入30个字)