这里只能激活沙盒解决方案,如果你是服务器场解决方案要去管理中心激活.
专业成都网站建设公司,做排名好的好网站,排在同行前面,为您带来客户和效益!创新互联建站为您提供成都网站建设,五站合一网站设计制作,服务好的网站设计公司,成都网站设计、做网站负责任的成都网站制作公司!
下面我将向大家介绍在SharePoint
2010中如何定制事件处理程序的Error Pages。
创建一个拥有自定制Error
Page的事件处理程序
首先让我们打开VS
2010并且使用事件接受器模板创建一个新的事件处理程序。
我们可以选择是创建一个场解决方案还是沙盒解决方案
最后选择事件接受器的类型,由于我的这个例子是要验证用户的输入内容,所以在这里我选择创建一个ItemAdding类型的事件接受器。
单击完成,随后我们会看到VS 2010自动为我们创建出了如下的结构的项目
接下来要做的就是为我的事件处理程序添加代码,以处理一些简单的逻辑。打开EventReceiver1.cs,VS已经为我们建立好了大部分的内容,我只需添加一些核心的逻辑就可以了。
using System;
using System.Security.Permissions;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Security;
using Microsoft.SharePoint.Utilities;
using Microsoft.SharePoint.Workflow;
namespace ItemAddingWithCustomErrorPage.EventReceiver1
{
/// summary
/// 列表项事件
/// /summary
public
class EventReceiver1 : SPItemEventReceiver
{
/// summary
/// 正在添加项.
/// /summary
public
override void ItemAdding(SPItemEventProperties properties)
{
base.ItemAdding(properties);
if
(properties.AfterProperties["到期日期"]==null)
{
properties.Status = SPEventReceiverStatus.CancelWithRedirectUrl;
properties.RedirectUrl = "/_layouts/ItemAddingWithCustomErrorPage/CustomErrorPage.aspx";
}
}
}
}
下面要做的就是添加一个用于显示错误信息的应用程序页。首先添加一个新项,仍然是在SharePoint
2010模板中,选择应用程序页模板。
Visual Studio 2010会自动创建一个名为Layouts的映射文件夹,它会映射到SharePoint安装目录中的Layouts目录。
下面要做的就是编辑这个应用程序页面,我们可以自由的定制它的样式,以及其中要显示的信息。
%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %
%@ Import Namespace="Microsoft.SharePoint.ApplicationPages" %
%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %
%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %
%@ Register Tagprefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %
%@ Import Namespace="Microsoft.SharePoint" %
%@ Assembly Name="Microsoft.Web.CommandUI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %
%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CustomErrorPage.aspx.cs" Inherits="ItemAddingWithCustomErrorPage.Layouts.ItemAddingWithCustomErrorPage.CustomErrorPage" DynamicMasterPageFile="~masterurl/default.master" %
asp:Content
ID="PageHead" ContentPlaceHolderID="PlaceHolderAdditionalPageHead" runat="server"
/asp:Content
asp:Content
ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server"
div
style="width:225px;float:left;"
asp:Image
ID="Image1" runat="server" ImageUrl="/_layouts/ItemAddingWithCustomErrorPage/saw.png"/
/div
div
style="width:400px;"
[SharePoint 2010]如何定制事件处理程序的Error Pages,希望能有更多的朋友能够加入到SharePoint这个大家园中来。
/div
/asp:Content
asp:Content
ID="PageTitle" ContentPlaceHolderID="PlaceHolderPageTitle" runat="server"
这是一个自定义的错误信息页面
/asp:Content
asp:Content
ID="PageTitleInTitleArea" ContentPlaceHolderID="PlaceHolderPageTitleInTitleArea" runat="server"
这是一个自定义的错误信息页面
/asp:Content
OK,到这里代码就全部写完了,让我们来测试一下吧,直接按"F5"就可以了,VS
2010会自动帮我们部署到SharePoint网站中。
沙盒解决方案
可以将 SharePoint Server 解决方案直接部署到 Microsoft SharePoint Server 2010 上,或将其部署到一个沙盒 内。沙盒是一个受限制的执行环境,可使应用程序仅访问某些资源,并使在沙盒中发生的问题不会影响服务器环境的其余部分。
部署到沙盒中的解决方案称为沙盒解决方案,它们不能使用某些计算机和网络资源,也不能访问它们部署到的网站集以外的内容。
因为沙盒解决方案不会影响整个服务器场,因此不必由服务器场管理员进行部署。沙盒解决方案可以由网站集管理员部署,或者,在某些情况中,可由对网站集根目录具有完全控制访问权的用户部署。只有服务器场管理员才可以提升沙盒解决方案,使其直接在沙盒之外的服务器场中运行。
在以下两种方案中,特别适合使用沙盒解决方案:
某个组织希望在 SharePoint Server 生产网站上运行员工代码,并且此代码没有经过严格的检查和测试。
宿主希望让所承载的 SharePoint Server 网站的所有者上载和运行自定义代码。
本文介绍与沙盒解决方案有关的概念,说明沙盒解决方案与在场中部署的解决方案的差异,并总结部署和运行沙盒解决方案的方式。本文未包含有关配置沙盒处理或部署沙盒解决方案的详细过程。
本文内容:
部署和运行沙盒解决方案
隔离沙盒解决方案
沙盒解决方案不能包含的内容
沙盒解决方案与场解决方案的比较
使用沙盒解决方案的好处
部署和运行沙盒解决方案
SharePoint Server 应用程序的任何页面除了包含直接在场中运行的组件之外,还可包含某些在沙盒中运行的组件。部署到场中的组件将在 Internet Information Services (IIS) 工作进程中运行。部署到沙盒中的组件将在沙盒进程中运行。
下面的列表标识了一些可能会在沙盒中部署的组件:
Web 部件
事件接收器
功能接收器
自定义 Microsoft SharePoint Designer 工作流活动
Microsoft InfoPath 业务逻辑
以下步骤介绍如何部署沙盒解决方案:
1. 服务器场管理员执行以下任务。这些任务只能执行一次。
· 服务器场管理员启用沙盒处理,并在每个将运行沙盒解决方案的服务器上启动沙盒服务。
· 服务器场管理员决定使用哪种负载平衡方案。该负载平衡方案将应用于服务器场中所有网站集中的所有沙盒解决方案。
· 服务器场管理员设置资源配额,一个网站集内的所有沙盒解决方案组合在一起不可以超过此配额。
2. 网站集管理员或拥有对网站集根目录的完全控制访问权的用户将一个解决方案上载到网站集的解决方案库中。
3. 网站集管理员激活解决方案。如果解决方案不包含程序集,则拥有对网站集根目录的完全控制访问权的用户也可以激活解决方案。将针对解决方案运行验证工具。如果解决方案验证失败,则不会将其激活。
当执行有关运行一个沙盒解决方案的请求时,将会发生以下活动:
1. 根据负载平衡方案,SharePoint Server 决定在哪个服务器上运行解决方案。如果负载平衡是本地的,则在与服务请求的同一服务器上运行解决方案。如果负载平衡是远程的,则根据解决方案关联性选择运行解决方案的服务器。在这两种情况下,服务器都必须运行沙盒服务。
2. SharePoint Server 选择一个沙盒工作进程来在其中运行解决方案,并将一个“填充码”动态链接库 (dll) 加载到该进程中,然后将解决方案程序集加载到该进程中。
3. 在解决方案运行过程中,解决方案的代码在由 SharePoint Server 执行之前会先通过填充码。如果解决方案代码试图使用限制沙盒解决方案使用的 API,则填充码将发出异常信号而不让代码通过并运行。
4. SharePoint Server 监控沙盒解决方案使用的资源。如果沙盒解决方案超过硬性限制(例如,如果它使用超过预定义数量的 CPU 时间),则 SharePoint Server 会中止沙盒工作进程。如果一个网站集中所有沙盒解决方案的组合超过了此网站集的资源配额,则 SharePoint Server 会在当天的剩余时间内关闭此网站集中的所有沙盒解决方案。
5. 网站集管理员可以监控沙盒解决方案使用的资源,也可以停用网站集中的解决方案。
如有必要,服务器场管理员可以阻止解决方案在场中运行。或者,服务器场管理员也可以移除在沙盒中运行解决方案的要求。如果移除在沙盒中运行的要求,则当解决方案在服务器场中的任何网站集中运行时,它将不再在沙盒中运行。
隔离沙盒解决方案
可以按不同的程度隔离沙盒解决方案。每个附加的隔离级别可增加您保护 SharePoint Server 网站的主要部分的能力,从而避开可能消耗太多资源的代码。在第一级别,沙盒代码在一个权限受限制的独立进程中运行。代码访问安全 (CAS) 限制代码可执行的操作。通过使用远程负载平衡并且仅对特定服务器运行沙盒服务,可增加隔离。在生产环境中,推荐您使用远程负载平衡,并专门使用一个单独的服务器来运行沙盒解决方案。
沙盒解决方案不能包含的内容
SharePoint Server 解决方案必须包含名为 manifest.xml 的配置文件,也可以包含附加的配置文件和程序集。如果解决方案将在沙盒中运行,则会将程序集和配置文件限制为它们可以包含的内容。
下面的列表标识了将在沙盒中运行的程序集不能做的最常见的事情。
连接到不在本地服务器上的资源。
访问数据库。
更改线程模型。
调用非托管代码。
写入到磁盘。
访问不同网站集中的资源。
manifest.xml 文件引用功能文件;功能文件引用元素文件;元素文件包含 feature 元素。在沙盒解决方案中唯独允许的 feature 元素有:
ContentType
Field
CustomAction
Module
ListInstance
ListTemplate
Receivers
WebTemplate
WorkflowAssociation
PropertyBag
WorkflowActions