SharePoint 备忘录(一)

一、关于Timer Job的重复执行的问题

 

      近期客户那边因为对门户的访问量日益增加, 原先一台应用服务器与DB的内容结构已经不能满足需求.于是我们为客户增加了一台Web前端服务器.准备部署NLB.但是在部署之后发现了先前定制的许多TimerJob出现了重复多次执行的问题.经查找资料后发现了问题所在。

在JOB定义时一般使用如下代码:

TimerJob Definition

 

 

SPJobLockType属性是这个问题的关键

以下是三个枚举成员值的解释:

ContentDatabase
Locks the content database before processing. 

Job
Locks the job to prevent it from running on more than one machine. 

None
No locks 

我们可以根据更改枚举参数来解决这个问题。  

 

二、快速修改web.config使SharePoint 2007支持.Net Framework 3.5

 

      我们都知道SharePoint 2007 发布时微软的.Net框架刚刚发布到3.0。但是在应用开发时我们经常要用到.NET 3.5的一些功能。而要让Sharepoint 2007支持.Net 3.5需要修改大量的Web.Config结点。这时我们可以很好的利用 VS2008中的自动更新Web.Config的功能。首先用VS2008创建一个基于.Net Framework 3.0 的 Web Application,创建完成后,将Sharepoint 2007中的Web.Config复制到刚刚创建的Web Application目录,此时应覆盖原有的Config文件。完成后回到VS2008。将WebApplication的框架提升到.Net Framework 3.5(右键“项目名称”->属性->“目标Framework”)。最后将更新好的Web.Config拷回到SharePoint2007的站点目录中。这样就完成了SharePoint的Web.Config的快速配置。

 

三、Sharepoint日志过大需要通过下面的和TSQL进行日志的收缩

 

ALTER DATABASE WSS_Content80 SET RECOVERY SIMPLE;
GO
DBCC SHRINKFILE (WSS_Content80_log, 1);
GO
ALTER DATABASE WSS_Content80 SET RECOVERY FULL;
GO

四、客户端可以访问,而服务器端不能访问Sharepoint网站

 

     将不久在一台SharePoint服务器上竟然不能访问本地网站,感到很莫名奇妙的是,在客户端竟然可以访问该站点。结果我在微软的一篇KB上打到了问题的答案,以下文记录

造成原因(摘自官方原文):

      在使用完全限定的域名 (FQDN) 或自定义主机标头浏览承载于运行 Microsoft Internet 信息服务 (IIS) 5.1 或 IIS 6 的计算机上的本地网站时,可能会收到类似于以下内容的错误消息:HTTP 401.1 - 未授权:登录失败

       当网站使用集成身份验证并具有映射到本地环回地址的名称时,将出现此问题。

                    方法 1:禁用环回检查
                    请按照下列步骤操作:
                        1. 依次单击“开始”和“运行”,键入 regedit,然后单击“确定”。
                        2. 在注册表编辑器中,找到并单击下面的注册表项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
                        3. 右键单击“Lsa”,指向“新建”,然后单击“DWORD 值”。
                        4. 键入 DisableLoopbackCheck,然后按 Enter。
                        5. 右键单击“DisableLoopbackCheck”,然后单击“修改”。
                        6. 在“数值数据”框中,键入 1,然后单击“确定”。
                        7. 退出注册表编辑器,然后重新启动您的计算机。

                    方法 2:指定主机名
                    要指定映射到环回地址并且可以连接到计算机上的网站的主机名,请按照以下步骤进行操作:
                        1. 依次单击“开始”和“运行”,键入 regedit,然后单击“确定”。
                        2. 在注册表编辑器中,找到并单击下面的注册表项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0
                        3. 右键单击“MSV1_0”,指向“新建”,然后单击“多字符串值”。
                        4. 键入 BackConnectionHostNames,然后按 Enter。
                        5. 右键单击“BackConnectionHostNames”,然后单击“修改”。
                        6. 在“数值数据”框中,为本地计算机上的网站键入一个或多个主机名,然后单击“确定”。
                        7. 退出注册表编辑器,然后重新启动 IISAdmin 服务。

 

六、两个常用的SharePoint 2007的计算列

      通过计算列我们可以将Item的一些字段重新格式化,例如日期、时间等。以此进行排序、分组等展示。下面列举了几个我在项目中常用的几个计算列的写法:

      我们知道,SharePoint2007中正常的字段显示格式为:2009-11-27 14:06  我们通过计算列就可以对其进行格式化显示

      1、 只要年份、月份   

            =TEXT([日期字段],"YYYY-MM")

      2、计算日期属于第几周

            =INT((A1-DATE(YEAR(A1),1,1)+WEEKDAY(DATE(YEAR(A1),1,1),3))/7)+1

      3、显示周期为这种方式:2010年第17周(2010-04-19至2010-04-25)

            =CONCATENATE(YEAR(计划开始时间),"年第",INT((计划开始时间-DATE(YEAR(计划开始时间),1,1)+WEEKDAY(DATE(YEAR(计划开始时间),1,1),3))/7)+1,"周","(",TEXT(计划开始时间-WEEKDAY(计划开始时间)+2,"yyyy-mm-dd"),"至",TEXT(计划开始时间+7-WEEKDAY(计划开始时间)+1,"yyyy-mm-dd"),")")

      4、将根据日期计算出属于第几个季度

            =IF(AND(VALUE(RIGHT([日期字段],2))<4,VALUE(RIGHT([日期字段],2))>0),CONCATENATE(LEFT([日期字段],4),"第1季度"),IF(AND(VALUE(RIGHT([日期字段],2))<7,VALUE(RIGHT([日期字段],2))>3),CONCATENATE(LEFT([日期字段],4),"第2季度"),IF(AND(VALUE(RIGHT([日期字段],2))<10,VALUE(RIGHT([日期字段],2))>6),CONCATENATE(LEFT([日期字段],4),"第3季度"),CONCATENATE(LEFT([日期字段],4),"第4季度"))))

 

这篇文章有许多计算列的示例: http://office.microsoft.com/en-us/sharepointtechnology/HA101054791033.aspx

你可能感兴趣的:(SharePoint)