Visual Studio 2013 添加一般应用程序(.ashx)文件到SharePoint项目
默认,在用vs2013开发SharePoint项目时,vs没有提供一般应用程序(.ashx)的项目模板,本文解决此问题。
- 以管理员身份启动vs2013,创建一个"SharePoint 2013 - 空项目",名称我保持默认:SharePointProject2。
- 选择"部署为场解决方案",结果如下:
- 右击"SharePointProject2",选择"添加"----SharePoint 的"Layouts"映射文件夹,结果如下:
- 右击Layouts下的SharePointProject2文件夹,选择添加---新建项,选择"应用程序页(仅场解决方案)",修改名称,注意文件扩展名改为:ashx
效果:
- 右击"ApplicationPage1.ashx.designer.cs"选择删除,此文件不是我们必需的。
- 修改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$"
%>
- 修改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
}
}
- 右击项目名"SharePointProject2",选择"卸载项目",如有提示,请选择"是"来保存项目
- 再次右击项目名"SharePointProject2",选择"编辑SharePointProject2.csproj"
- 修改如下,然后保存:
在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/
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项目的更多相关文章
- Visual Studio 2013 添加新项缺失[ADO.NET 实体数据模型]解决方法
解决方法如下: 1).到 Visual Studio 2013 的安装包的目录:/packages/EFTools 中寻找如下文件 EFTools.msi; EFTools.cab,如图 将它们复制自 ...
- Visual Studio 2013 Unit Test Project App.config文件设置方法
开放中经常会要做单元测试,新的项目又没有单元测试项目,怎么才能搭建一个单元测试项目呢? 下面跟我四步走,如有错误之处,还请指正! 1.添加项目 2.添加配置文件 新建app.config文件,注意不是 ...
- Visual studio 2013 添加 GitHub
- 如何用Visual Studio 2013 (vs2013)编写C语言程序
如何用Visual Studio 2013 (vs2013)编写C语言程序 (2014-05-16 10:58:15) Visual Studio 2013是一个很强大的软件,但是刚开始用Visu ...
- 如何在Visual Studio 2013中使用Ribbon For WPF
1.首先需要 下载Ribbon For WPF.目前最新的版本是Microsoft Ribbon for WPF October 2010. 下载 链接: https://www.microsoft. ...
- Visual Studio 2013中使用Ribbon For WPF
1.首先需要 下载Ribbon For WPF.目前最新的版本是Microsoft Ribbon for WPF October 2010. 下载 链接: https://www.microsoft. ...
- Visual Studio 2013中因SignalR的Browser Link引起的Javascript错误一则
众所周知Visual Studio 2013中有一个由SignalR机制实现的Browser Link功能,意思是开发人员可以同时使用多个浏览器进行调试,当按下IDE中的Browser Link按钮后 ...
- Visual Studio 2013 的 Browser Link 功能
Visual Studio 2013 的 Browser Link 功能 最近公司弄新项目需要用 MVC,就把 IDE 升级到了 Visual Studio 2013,在开发的时候发现有好多请求一个本 ...
- Microsoft Visual Studio 2012 添加实体数据模型
Microsoft Visual Studio 2012 添加实体数据模型 1.创建一个web项目 2.添加ADO实体数据模型,如下图: 3.选择 从数据库生成,然后下一步 4.新建连接,如下图: ...
随机推荐
- Hadoop 中利用 mapreduce 读写 mysql 数据
Hadoop 中利用 mapreduce 读写 mysql 数据 有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv.uv 数据,然后为了实时查询的需求,或者一些 OLAP ...
- NodeJs在Linux下使用的各种问题
环境:ubuntu16.04 ubuntu中安装NodeJs 通过apt-get命令安装后发现只能使用nodejs,而没有node命令 如果想避免这种情况请看下面连接的这种安装方式: 拓展见:Linu ...
- SSH实战 · 用spring框架下的hibernatetemplate的get方法出现的问题
用get方法查询: return this.getHibernateTemplate().get(Product.class, pid); 出现错误为:id to load is requi ...
- Java多线程基础——对象及变量并发访问
在开发多线程程序时,如果每个多线程处理的事情都不一样,每个线程都互不相关,这样开发的过程就非常轻松.但是很多时候,多线程程序是需要同时访问同一个对象,或者变量的.这样,一个对象同时被多个线程访问,会出 ...
- OpenSceneGraph in ActiveX by ActiveQt
OpenSceneGraph in ActiveX by ActiveQt eryar@163.com Abstract. Qt’s ActiveX and COM support allows Qt ...
- 12、Struts2表单重复提交
什么是表单重复提交 表单的重复提交: 若刷新表单页面, 再提交表单不算重复提交. 在不刷新表单页面的前提下: 多次点击提交按钮 已经提交成功, 按 "回退" 之后, 再点击 &qu ...
- DDD 领域驱动设计-两个实体的碰撞火花
上一篇:<DDD 领域驱动设计-领域模型中的用户设计?> 开源地址:https://github.com/yuezhongxin/CNBlogs.Apply.Sample(代码已更新) 在 ...
- 【绝对干货】仿微信QQ设置图形头像裁剪,让你的App从此炫起来~
最近在做毕业设计,想有一个功能和QQ一样可以裁剪头像并设置圆形头像,额,这是设计狮的一种潮流. 而纵观现在主流的APP,只要有用户系统这个功能,这个需求一般都是在(bu)劫(de)难(bu)逃(xue ...
- 十分钟玩转 jQuery、实例大全
一.简介 定义 jQuery创始人是美国John Resig,是优秀的Javascript框架: jQuery是一个轻量级.快速简洁的javaScript库.源码戳这 jQuery对象 jQuery产 ...
- java设计模式之--单例模式
前言:最近看完<java多线程编程核心技术>一书后,对第六章的单例模式和多线程这章颇有兴趣,我知道我看完书还是记不住多少的,写篇博客记录自己所学的只是还是很有必要的,学习贵在坚持. 单例模 ...