默认,在用vs2013开发SharePoint项目时,vs没有提供一般应用程序(.ashx)的项目模板,本文解决此问题。

  1. 以管理员身份启动vs2013,创建一个"SharePoint 2013 - 空项目",名称我保持默认:SharePointProject2。
  2. 选择"部署为场解决方案",结果如下:
  3. 右击"SharePointProject2",选择"添加"----SharePoint 的"Layouts"映射文件夹,结果如下:

  4. 右击Layouts下的SharePointProject2文件夹,选择添加---新建项,选择"应用程序页(仅场解决方案)",修改名称,注意文件扩展名改为:ashx

    效果:

  5. 右击"ApplicationPage1.ashx.designer.cs"选择删除,此文件不是我们必需的。
  6. 修改ApplicationPage1.ashx为如下内容(留意红框中的内容):

<%@
Assembly
Name="$SharePoint.Project.AssemblyFullName$"
%>

<%@
Assembly
Name="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
%>

 

<%@
WebHandler
Class="$SharePoint.Type.be94b0d0-ca37-4783-b8e9-06ba0477a22f.FullName$"
%>

  1. 修改ApplicationPage1.ashx.cs内容如下(注意红框中的GUID和上面的GUID要保持一致):

using System;

using System.Web;

using System.Runtime.InteropServices;

namespace SharePointProject2.Layouts.SharePointProject2

{

[Guid("be94b0d0-ca37-4783-b8e9-06ba0477a22f")]

public
partial
class
ApplicationPage1 : IHttpHandler

{

#region IHttpHandler Members

public
bool IsReusable

{

get { throw
new
NotImplementedException(); }

}

public
void ProcessRequest(HttpContext context)

{

//throw new NotImplementedException();

context.Response.Write("123");

}

#endregion

}

}

 

  1. 右击项目名"SharePointProject2",选择"卸载项目",如有提示,请选择"是"来保存项目
  2. 再次右击项目名"SharePointProject2",选择"编辑SharePointProject2.csproj"
  3. 修改如下,然后保存:

    在PropertyGroup节点下面,添加如下:

    <TokenReplacementFileExtensions>ashx</TokenReplacementFileExtensions>

十一.右击项目"SharePointProject2",选择"重新加载项目",注意要关闭我们打开的SharePointProject2.csproj文件。

十二.右击项目"SharePointProject2",选择"部署"。打开浏览器就可以浏览了。

关于GUID的生成,请在vs里,选择"工具"----"创建GUID"

关于上面的"六","七"步,如果不想使用GUID的形式,也可以使用如下方式(去掉红星划掉的部分):

即:把ashx中的Class改为"命名空间.类名"的格式。

如遇报错,请

右击"ApplicationPage1.ashx"选择"属性",然后把"生成操作"改为"内容"。

右击"ApplicationPage1.ashx.cs" 选择"属性",然后把"生成操作"改为"编译"。

关于如何在Visual Studio 2010的SharePoint项目中添加一般应用程序(.ashx),建议安装vs2010插件cks(http://cksdev.codeplex.com/).

当然也可以按上面的方法进行,执行把"六"中的前两行代码改为:

<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>

<%@ Assembly Name="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>

 

参考:

https://cann0nf0dder.wordpress.com/2013/05/22/creating-generic-httphandler-in-sharepoint/

http://www.lifeonplanetgroove.com/adding-and-deploying-generic-handlers-ashx-to-a-sharepoint-2010-visual-studio-project/

https://peakfinders.blogspot.jp/2015/03/adding-and-deploying-generic-handlers.html

http://blog.csdn.net/abrahamcheng/article/details/20490757#

Visual Studio 2013 添加一般应用程序(.ashx)文件到SharePoint项目的更多相关文章

  1. Visual Studio 2013 添加新项缺失[ADO.NET 实体数据模型]解决方法

    解决方法如下: 1).到 Visual Studio 2013 的安装包的目录:/packages/EFTools 中寻找如下文件 EFTools.msi; EFTools.cab,如图 将它们复制自 ...

  2. Visual Studio 2013 Unit Test Project App.config文件设置方法

    开放中经常会要做单元测试,新的项目又没有单元测试项目,怎么才能搭建一个单元测试项目呢? 下面跟我四步走,如有错误之处,还请指正! 1.添加项目 2.添加配置文件 新建app.config文件,注意不是 ...

  3. Visual studio 2013 添加 GitHub

  4. 如何用Visual Studio 2013 (vs2013)编写C语言程序

    如何用Visual Studio 2013 (vs2013)编写C语言程序 (2014-05-16 10:58:15)   Visual Studio 2013是一个很强大的软件,但是刚开始用Visu ...

  5. 如何在Visual Studio 2013中使用Ribbon For WPF

    1.首先需要 下载Ribbon For WPF.目前最新的版本是Microsoft Ribbon for WPF October 2010. 下载 链接: https://www.microsoft. ...

  6. Visual Studio 2013中使用Ribbon For WPF

    1.首先需要 下载Ribbon For WPF.目前最新的版本是Microsoft Ribbon for WPF October 2010. 下载 链接: https://www.microsoft. ...

  7. Visual Studio 2013中因SignalR的Browser Link引起的Javascript错误一则

    众所周知Visual Studio 2013中有一个由SignalR机制实现的Browser Link功能,意思是开发人员可以同时使用多个浏览器进行调试,当按下IDE中的Browser Link按钮后 ...

  8. Visual Studio 2013 的 Browser Link 功能

    Visual Studio 2013 的 Browser Link 功能 最近公司弄新项目需要用 MVC,就把 IDE 升级到了 Visual Studio 2013,在开发的时候发现有好多请求一个本 ...

  9. Microsoft Visual Studio 2012 添加实体数据模型

     Microsoft Visual Studio 2012 添加实体数据模型 1.创建一个web项目 2.添加ADO实体数据模型,如下图: 3.选择 从数据库生成,然后下一步 4.新建连接,如下图: ...

随机推荐

  1. TODO:macOS编译PHP7.1

    TODO:macOS编译PHP7.1 本文主要介绍在macOS上编译PHP7.1,有兴趣的朋友可以去尝试一下. 1.下载PHP7.1源码,建议到PHP官网下载纯净到源码包php-7.1.0.tar.g ...

  2. JavaScript的继承实现方式

    1.使用call或apply方法,将父对象的构造函数绑定在子对象上 function A(){ this.name = 'json'; } function B(){ A.call(this); } ...

  3. Spring之旅

    Java使得以模块化构建复杂应用系统成为可能,它为Applet而来,但为组件化而留. Spring是一个开源的框架,最早由Rod Johnson创建.Spring是为了解决企业级应用开发的复杂性而创建 ...

  4. ASP.NET MVC5+EF6+EasyUI 后台管理系统(69)-微信公众平台开发-功能概述

    系列目录 为什么要先发这个文章? 因为接下来的文章是关于微信开发的系列,心中一定要有一个概念,知道自己接下来要做什么功能. 而且微信到处都是坑,我首先要把微信与本地跑通起来才敢发布,否则中间出现坑导致 ...

  5. SQL Server-聚焦APPLY运算符(二十七)

    前言 其实有些新的特性在SQL Server早就已经出现过,但是若非系统的去学习数据库你会发现在实际项目中别人的SQL其实是比较复杂的,其实利用新的SQL Server语法会更加方便和简洁,从本节开始 ...

  6. Java中用得比较顺手的事件监听

    第一次听说监听是三年前,做一个webGIS的项目,当时对Listener的印象就是个"监视器",监视着界面的一举一动,一有动静就触发对应的响应. 一.概述 通过对界面的某一或某些操 ...

  7. Android Studio开发RecyclerView遇到的各种问题以及解决(一)

    以前一直在用ListView,,,最近才看RecyclerView发现好强大.RecyclerView前提是Android版本在5.0以上,本人以前用的是eclipse只支持到4.4.索性就安装一个A ...

  8. MSSQL 事务,视图,索引,存储过程,触发器

    事务 事务是一种机制.是一种操作序列,它包含了一组数据库操作命令,这组命令要么全部执行,要么全部不执行. 在数据库系统上执行并发操作时事务是作为最小的控制单元来使用的.这特别适用于多用户同时操作的数据 ...

  9. Oracle中的commit详解

    本文转自 : http://blog.csdn.net/hzhsan/article/details/9719307 它执行的时候,你不会有什么感觉.commit在数据库编程的时候很常用,当你执行DM ...

  10. mysql 远程访问权限

    MySQL默认没有开启远程访问的权限,需要手动打开,步骤如下: 1.通过命令行登录2.mysql>update user set host = '%' where user = 'root';这 ...