Excute Timerjob

 public class TriggerLoadCacheTimerJob : SPJobDefinition
{
string ExceptionFlag = string.Empty; public TriggerLoadCacheTimerJob()
: base()
{
}
// Overriding the parameterized constructor
public TriggerLoadCacheTimerJob(string jobName, SPService service, SPServer server, SPJobLockType targetType)
: base(jobName, service, server, targetType) { } public TriggerLoadCacheTimerJob(string jobName, SPWebApplication webApp)
: base(jobName, webApp, null, SPJobLockType.Job)
{
// create the timer job with the name passed in Constructor and assign title
this.Title = Constants.TIMERJOB_NAME;
}
public override void Execute(Guid targetInstanceId)
{ TriggerLoadCacheWebService();
}
}
private void TriggerLoadCacheWebService()
{
try
{
SPWebApplication webApp = this.Parent as SPWebApplication;
Configuration config = WebConfigurationManager.OpenWebConfiguration("/", webApp.Name);
string CustomWebServiceURLs = config.AppSettings.Settings["CustomWebServiceUrls"].Value;
string AccountName = config.AppSettings.Settings["AccountName"].Value;
string Password = config.AppSettings.Settings["Password"].Value;
string Domain = config.AppSettings.Settings["Domain"].Value;
ExceptionFlag = config.AppSettings.Settings[Constants.LogExceptionFlag].Value;
string[] customWSURLs = CustomWebServiceURLs.Split(';');
for (int i = ; i < customWSURLs.Length; i++)
{
AEnhancement.PSWebService mywebService = new AEnhancement.PSWebService();
mywebService.Url = customWSURLs[i].ToString();
NetworkCredential credential = new NetworkCredential(AccountName, Password, Domain);
//mywebService.Timeout=300000;
mywebService.Credentials = credential;
mywebService.LoadCacheAsync();
}
}
catch (Exception ex)
{
if (ExceptionFlag.ToLower() == "true")
{
TraceLog.Error("Message:" + ex.Message + "Source:" + ex.Source + "TargetSite:" + Convert.ToString(ex.TargetSite), "TriggerLoadCacheWebService Method in Timer Job");
}
}
}

Timerjob inherited SPJobDefinition, it is based on webapplication(CA). You are able to debug timerjob via OWSTimer.exe.

Install TimerJob-Feature Active

class TimerJobFeatureReceiver : SPFeatureReceiver
{
string ExceptionFlag = string.Empty;
string InfoFlag = string.Empty;
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
try
{
TraceLog.Information("Activate Feature Start", "Activate Feature");
SPSite CurrentSite = properties.Feature.Parent as SPSite; if (CurrentSite == null)
{
TraceLog.Information("Current Site is NULL", "Activate Feature");
return;
}
else
{
TraceLog.Information("Current Site " + CurrentSite.Url, "Activate Feature");
} SPWebApplication webapp = CurrentSite.WebApplication; if (webapp == null)
{
TraceLog.Information("Web APP is NULL", "Activate Feature");
return;
}
else
{
TraceLog.Information("WebAPP "+webapp.Name, "Activate Feature");
}
// deletes the timer job if already exists
foreach (SPJobDefinition job in webapp.JobDefinitions)
{
if (job.Name == Constants.TIMERJOB_NAME)
{
job.Delete();
TraceLog.Information("Timer Job Delete Firstly", "Activate Feature");
break;
}
} // install the job
SPSecurity.RunWithElevatedPrivileges(() =>
{
TraceLog.Information("Install Timer Job Begin", "Activate Feature");
TriggerLoadCacheTimerJob customTimerjob = new TriggerLoadCacheTimerJob(Constants.TIMERJOB_NAME, webapp);
TraceLog.Information("", "Activate Feature");
Configuration config = WebConfigurationManager.OpenWebConfiguration("/", CurrentSite.WebApplication.Name);
TraceLog.Information("config created", "Activate Feature");
string TimerJobSchedule = config.AppSettings.Settings["TimerJobSchedule"].Value;
TraceLog.Information(TimerJobSchedule, "Activate Feature");
ExceptionFlag = config.AppSettings.Settings[Constants.LogExceptionFlag].Value;
SPSchedule schedule = SPSchedule.FromString("daily at " + TimerJobSchedule); //SPMinuteSchedule schedule = new SPMinuteSchedule();
//schedule.BeginSecond = 0;
//schedule.EndSecond = 59;
//schedule.Interval = 5; customTimerjob.Schedule = schedule;
TraceLog.Information("Timer Job UPdate Method Start", "Activate Feature");
customTimerjob.Update();
TraceLog.Information("Timer Job UPdate Method End", "Activate Feature");
TraceLog.Information("Install Timer Job End", "Activate Feature");
});
}
catch (Exception ex)
{
if (ExceptionFlag.ToLower() == "true")
{
TraceLog.Error("Message:" + ex.Message + "Source:" + ex.Source + "TargetSite:" + Convert.ToString(ex.TargetSite), "TriggerLoadCacheWebService Method in Timer Job");
}
} } public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
{ try
{
SPSite CurrentSite = properties.Feature.Parent as SPSite;
if (CurrentSite == null)
return;
SPWebApplication webapp = CurrentSite.WebApplication;
if (webapp == null)
return;
// deletes the timer job if already exists
foreach (SPJobDefinition job in webapp.JobDefinitions)
{
if (job.Name == Constants.TIMERJOB_NAME)
{
job.Delete();
break;
}
}
}
catch (Exception ex)
{
if (ExceptionFlag.ToLower() == "true")
{
TraceLog.Error("Message:" + ex.Message + "Source:" + ex.Source + "TargetSite:" + Convert.ToString(ex.TargetSite), "TriggerLoadCacheWebService Method in Timer Job");
}
}
}
}

Feature base on site

Create Config file in bin Folder

  1. Create OWSTimer.EXE.Config file in bin folder C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\bin
  2. Add these infomation in the file or you can put the file in bin folder.

  

<configuration>

  <appSettings>

    <add key="AccountName" value="Jenny" />
<add key="Password" value="c003#" />
<add key="Domain" value="abc" />
<add key="CustomWebServiceUrls" value="http://sp2007:11908/_vti_bin/AWebService/PSWebService.asmx;http://sp2007:11909/_vti_bin/AWebService/PSWebService.asmx" />
<add key="Detail_PeopleSearch_Debug" value="True" />
<add key="PeopleSearch_Exception" value="True" /> </appSettings> </configuration>

Explanation of Key, Value in Configuration files

  1. AccountName, Password and Domain keys

Account should be the same as account which is used to run Windows SharePoint Services Timer service

  1. CustomWebServiceUrls key

It means customwebServiceUrls which you will use in several WFE, you have to configure these several links which is split by " ; ".

  1. MaxRecords key

It means how many records will get back when user keys in characters.

  1. TimerJobSchedule key

It stands for when timer job runs

  1. Detail_PeopleSearch_Debug and PeopleSearch_Exception keys

They are used to enable to note down log when they are set as “True”.

Create and Install Timer Job in MOSS 2007的更多相关文章

  1. How to upgrade workflow assembly in MOSS 2007

    This problem generally start when you are having an existing custom workflow and there are instances ...

  2. Custom Web Servic In MOSS 2007

    Tools: Visual Studio 2008,Visual Studio 2008 Command Prompt, Sharepoint Server 2007 Generate .disco ...

  3. MOSS 2007 错误0x80040E14解决

    今天公司内网莫名的出现错误,只能新建列表条目,不能创建网站,到后来列表条目也不能创建了,一直报0x80040E14错误.于是Google一把,搜索这个错误号,然后在apearce 的Blog找到了原因 ...

  4. Using XSLT and Open XML to Create a Word 2007 Document

    Summary: Learn how to transform XML data into a Word 2007 document by starting with an existing docu ...

  5. Embedding Documents in Word 2007 by Using the Open XML SDK 2.0 for Microsoft Office

    Download the sample code This visual how-to article presents a solution that creates a Word 2007 doc ...

  6. 转贴:sudo apt-get install 可以安装的一些软件

    Ubuntu 下的一些软件安装sudo apt-get install virtualbox#华主席推荐 2007年年度最佳软件,最佳编辑选择奖得主.....sudo apt-get install ...

  7. SharePoint 2007 页面定制(一)

    转:http://www.nanmu.net/SharePoint-MOSS-WSS-Silverlight/Lists/Posts/Post.aspx?ID=74 本文主要包括以下几方面内容: 1. ...

  8. C#中npoi操作Excel[版本2.0.1读写2003、2007格式]

    下载npoi2.0.1dll文件:http://download.csdn.net/detail/pukuimin1226/5851747 public static void test1()     ...

  9. NPOI兼容 excel2003,2007版本

    根据项目需要,需要对excel进行导入导出,所以选择NPOI,优点在这里就不详细介绍了,下面进入正题. public int Import(string path) { IList<Studen ...

随机推荐

  1. angularJS之$watch的一个小介绍

    现在最近公司项目使用angularJS进行开发:以前也接触过但是不多,趁着现在熟悉回来. 如题,angular中$watch也是我们在开发的时候需要的各种监听: $watch接收3个参数,第一个是对象 ...

  2. 如何用Java代码列出一个目录下所有的文件?

    目录文件夹 File file=new File("H:\\"); for(File temp:file.listFiles()){//Java5的新特性之一就是增强的for循环. ...

  3. JSP 实现◆菱形 三角形△ 的输出

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  4. 个人项目制作(PSP)

    计划: 软件的此功能的实现,个人估算需要一个周的时间. 开发阶段: 需求分析: 1> 运动员希望软件可以记录自己的得分项. 2> 运动员希望软件可以记录自己的得分具体细节. 3>运动 ...

  5. video 手机全屏自动播放

    <video src="video.mp4" id="video" x-webkit-airplay="true" webkit-pl ...

  6. 前台JS(type=‘file’)读取本地文件的内容,兼容各种浏览器

    [自己测了下,能兼容各种浏览器,但是读取中文会出现乱码.自己的解决方法是用notepad++把txt文件编码改为utf-8(应该是和浏览器编码保持一致吧?..)] 原文  http://blog.cs ...

  7. 组合suan

    /// 求从数组a[1..n]中任选m个元素的所有组合. /// a[1..n]表示候选集,n为候选集大小,n>=m>0. /// b[1..M]用来存储当前组合中的元素(这里存储的是元素 ...

  8. 一个简单的物料防错DEMO

    前言 快2个月没写过博客了,就算是记流水账似的文章都没时间写,主要是太忙了:太多的bug要修复.太多由于bug引起的异常问题要解决.还有新的项目要开发,不忙怎么行呢?最近利用业余时间在鼓捣一个PDA的 ...

  9. 中国天气网放回json的解释

    本文是出自David_Tang的,原文http://www.cnblogs.com/mchina/archive/2013/07/12/3170551.html {"weatherinfo& ...

  10. Less环境搭建

    1.在页面中加入 .less 样式表的链接,并将 rel 属性设置为 "stylesheet/less": <link rel="stylesheet/less&q ...