Subscribe: 博客园-Bluehat
http://www.cnblogs.com/bluehat/rss.aspx
Preview: 博客园-Bluehat

博客园_Bluehat



------------------------歡迎光臨 親愛的,請享用我的BLOG



Updated: 2012-12-13T11:58:09Z

 



如果你的sharepoint 2013很慢... - bluehat

2012-12-13T11:58:00Z

Fast 默认变为sharepoint 2013的搜索引擎,所以会导致sharepoint2013 非常耗资源,有一个noderunner.exe几乎吃掉所有的CPU和内存,如果你的机器配置不高,你仅仅用来做开发,可以尝试如下操作:1.删除search services application2.停止SharePoint Search Host Controller"和 "SharePoint Server Search 15"(windows services )3.尽可能给大一点的内存(10G).4.重启。速度就刷刷的啦~~~~

Fast 默认变为sharepoint 2013的搜索引擎,所以会导致sharepoint2013 非常耗资源,有一个noderunner.exe几乎吃掉所有的CPU和内存,如果你的机器配置不高,你仅仅用来做开发,可以尝试如下操作:

1.删除search services application

2.停止SharePoint Search Host Controller" 和 "SharePoint Server Search 15"(windows services )

3.尽可能给大一点的内存(10G).

4.重启。

速度就刷刷的啦~~~~

 

(image)

本文链接:http://www.cnblogs.com/bluehat/archive/2012/12/13/2816969.html,转载请注明。




Sharepoint 2010 Timer Job 自定义开发的几个注意事项 - bluehat

2012-05-30T17:07:00Z

1.怎么自定义开发一个Timer Job 可以参见 http://msdn.microsoft.com/en-us/library/ff798313.aspx2.SharePoint timer jobs 是运行在 OWSTIMER.exe 这个进程下的,所以Debug的话,需要attach到这个进程上去3.ConfigurationManager.AppSettings读取的自然也是 OWSTIMER.exe的配置文件,在14\bin\OWSTIMER.EXE.config,追加这个标签就好 1.怎么自定义开发一个Timer Job 可以参见 http://msdn.microsoft.com/en-us/library/ff798313.aspx 

2. SharePoint timer jobs 是运行在 OWSTIMER.exe 这个进程下的,所以Debug的话,需要attach到这个进程上去

3. ConfigurationManager.AppSettings读取的自然也是 OWSTIMER.exe的配置文件,在14\bin\OWSTIMER.EXE.config,追加这个标签就好

 

"1.0" encoding="utf-8" ?>

  
    "ftpServerIP" value="192.168.164.134" />
    "ftpUserID" value= "user" />
    "ftpPassword" value= "password"/>
    "localDestnDir" value="c:\test" />
   

  
  

4. 每次改动代码,部署可能不能及时生效,需要重启 SharePoint 2010 Timer 这个服务,然后在IISRESET

(image)

本文链接:http://www.cnblogs.com/bluehat/archive/2012/05/31/2527210.html,转载请注明。




2011你教会我的那些事儿 - bluehat

2011-12-31T14:14:00Z

失忆和忽视才是快乐的王道!

失忆和忽视才是快乐的王道!

 

(image)

本文链接:http://www.cnblogs.com/bluehat/archive/2011/12/31/2309146.html,转载请注明。




【sharepoint】SPEventReceiverStatus.CancelWithRedirectUrl 出错的请看这里 - bluehat

2011-12-19T15:22:00Z

如果你使用sharepoint 里的eventhandler,并在里面做了页面跳转,但是发现跳转失败的话,请注意,一定要先设置RedirectUrl,再设置Status。三行代码的顺序一定不能错!MSDN上都是错的,坑爹呀~~~~~View Code properties.Cancel=true;properties.RedirectUrl="/_layouts/CustomErrorPage/SiteCreationError.aspx";properties.Status=SPEventReceiverStatus.CancelWithRedirectUrl;

如果你使用sharepoint 里的eventhandler,并在里面做了页面跳转,但是发现跳转失败的话,请注意,一定要先设置RedirectUrl,再设置Status。

三行代码的顺序一定不能错!

MSDN上都是错的,坑爹呀~~~~~

(image)
 properties.Cancel = true;
 properties.RedirectUrl = "/_layouts/CustomErrorPage/SiteCreationError.aspx";
 properties.Status = SPEventReceiverStatus.CancelWithRedirectUrl;

 

(image)

本文链接:http://www.cnblogs.com/bluehat/archive/2011/12/19/2294032.html,转载请注明。




SharePoint Server 2010 LDAP Form 验证最容易出错的几点 - bluehat

2011-03-21T13:52:00Z

在Sharepoint 2010 里,如果需要使用LDAP 来做Form 验证,只要按照这篇http://technet.microsoft.com/en-us/library/ee806890.aspx 这篇文档做就好。但是有几个地方这个文档讲不清楚,很容易出错。1.这两个name要和创建web application时提供的membership,rolemanager名称一样在Sharepoint 2010 里,如果需要使用LDAP 来做Form 验证,只要按照这篇http://technet.microsoft.com/en-us/library/ee806890.aspx 这篇文档做就好。但是有几个地方这个文档讲不清楚,很容易出错。

1.

这两个name要和创建web application时提供的membership,rolemanager名称一样

 

<add name="membership" 
<add name="roleManager" 

2.

这三行代码要和自己的环境一致

server="yourserver.com" 
userContainer="OU=UserAccounts,DC=internal,DC=yourcompany,DC= distinguishedName (of your userContainer)" 
 groupContainer="DC=internal,DC=yourcompany,DC= distinguishedName (of your groupContainer)"

3.用户授权,Windows集成验证的用户和form验证的用户是两个claim,各是各的,比如你给了administrator访问权限,但是form验证却通不过,总说用户名或者密码不对,这个时候请注意了,你给的这个administrator是属于windows集成验证这个claim的,还是form这个claim的。在分配用户权限的时候,搜索同一个用户会得到两个claim的结果,都要赋权限的。

4.最后一点,form验证的时候,用户名不要带"domainname\",直接输入!

5.检查DC的防火墙,是不是禁用了LDAP的389端口。

(image)

本文链接:http://www.cnblogs.com/bluehat/archive/2011/03/21/1990745.html,转载请注明。




CRM 客户端 - bluehat

2010-10-28T10:33:00Z

最近写了一个CRM平台的客户端小工具自己用,很是方便,主要是通过调用crm的一些web services的接口,写下来的收获主要有两点1.搞清楚各个entry 的metadata,以及类型type2.调用时,如果出错,总是一些很general的错误,大家无从查起,其实这里只要抛SoapException这个异常就可以拿到很想详细的错误信息。[代码]=========后记:为什么写这个客户端的too...

最近写了一个CRM平台的客户端小工具自己用,很是方便,主要是通过调用crm的一些web services的接口,写下来的收获主要有两点

1.搞清楚各个entry 的metadata,以及类型type

2.调用时,如果出错,总是一些很general的错误,大家无从查起,其实这里只要抛SoapException这个异常就可以拿到很想详细的错误信息。

 

1 try
2     {  
3      ...
4 
5     }
6 catch (System.Web.Services.Protocols.SoapException ex)
7     {      //Exception handling,ex.Detail.InnerXml会显示详细的错误信息
8         throw;
9      }

=========

后记:为什么写这个客户端的tool,其实也是有来由的。现在的软件不管怎么,都讲究B/S结构,安装部署维护起来确实方便,但是对于使用者来说,其实这都是牺牲了效率换来的,每按一个按钮,就要等一会,页面每刷新一次,就要等半天,在频繁的使用和操作的场景下,难免都会怀念客户端工具的好处了。

B/S还是C/S,胖客户端还是瘦客户端,谁输谁劣,其实都是由使用场景决定的,技术本身没有什么可比性,三十年河东,三十年河西罢了,切不可跟风。

(image)

本文链接:http://www.cnblogs.com/bluehat/archive/2010/10/28/1863800.html,转载请注明。




SharePoint 2010 中如何彻底删除用户 - bluehat

2010-10-22T08:48:00Z

以前我们在SharePoint 2007 中想要把一个用户从网站集中彻底删除的话,可以通过选择Site Actions—Site Settings—User and Permission—All people,然后选中这个用户,选择Action—Delete Users From Site Colletion. 截图如下: 点击All People 进入,就可以删除用户了。 截图如下: 但是细心地...

以前我们在SharePoint 2007 中想要把一个用户从网站集中彻底删除的话,可以通过选择Site Actions—Site Settings—User and Permission—All people,然后选中这个用户,选择Action—Delete Users From Site Colletion.

截图如下:

(image)

点击All People 进入,就可以删除用户了。

截图如下:

(image)

 

但是细心地朋友会发现,这个功能在SharePoint 2010 正式版中没有了,

截图如下:

(image)

这是产品组的一个设计,本意是不希望提供直接删除用户的接口,只要在组里把用户移除就好,但是对于有这样需求的用户,就比较麻烦了。不过不用担心,其实"All People"这个页面并没有消失,只是隐藏起来了,我们只要输入people.aspx?MembershipGroupId=0这样的URL ,就可以进去了。

不明白?没关系,你先点击"People and groups",然后您的IE 地址栏应该是http://…/people.aspx?MembershipGroupId=7 这样的地址,只要把MembershipGroupId=7改为 MembershipGroupId=0,就可以进去"All People"页面,尽情的删除用户了~~~~~

(image)

本文链接:http://www.cnblogs.com/bluehat/archive/2010/10/22/1858399.html,转载请注明。




SharePoint 2007/2010 的"SPGridView "控件常见的两个问题 - bluehat

2010-10-22T08:46:00Z

大家在使用SharePoint 2007或者 SharePoint 2010 里的SPGridView 的时候,可能会遇到两个问题。 问题一:无法显示分页的页码。 很多朋友很奇怪明明已经设置如下的代码 oGrid.AllowPaging = true; oGrid.PageSize = 2; oGrid.PageIndexChanging +=new GridViewPageEventHandle...

大家在使用SharePoint 2007或者 SharePoint 2010 里的SPGridView 的时候,可能会遇到两个问题。

问题一:无法显示分页的页码。

很多朋友很奇怪明明已经设置如下的代码

oGrid.AllowPaging = true;
oGrid.PageSize = 2;
oGrid.PageIndexChanging +=new GridViewPageEventHandler(oGrid_PageIndexChanging);

但是页面上无法显示页码。

这个是SharePoint 自己的问题,我们需要加入下面一行代码

Controls.Add(oGrid);
oGrid.PagerTemplate = null;//这行就是要加的代码,顺序很重要,一定要在Controls.Add之后,DataBind();之前
oGrid.DataBind();

 

现在再试试,是不是就可以看见页码了^_^

 

 

问题二:启用了过滤后,在翻页以后,发现在选择下一页,SPGridView会加载所有的数据,而不是filter过滤的数据。过滤功能失效了。

 

因为在render 下一页后,无法继续保存filter .所以这里有这样一个办法大家可以试试:

首先在OnPreRender里插入下面代码保存FilterExpression 到ViewState中,(记得确保代码里Enable ViewState)

protected override void OnPreRender(EventArgs e) {

ViewState["FilterExpression"] = odsDataSource.FilterExpression;

base.OnPreRender(e);

}

然后

在您的Controls.Add(odsDataSource); 之前插入下面的代码,

HttpRequest req = HttpContext.Current.Request; if (req.Form["__CALLBACKID"] == null ||

req.Form["__CALLBACKPARAM"] == null ||

!req.Form["__CALLBACKID"].EndsWith("ExampleGrid"))

{

if (ViewState["FilterExpression"] != null)

odsDataSource.FilterExpression = (string)ViewState["FilterExpression"];

}

(image)

本文链接:http://www.cnblogs.com/bluehat/archive/2010/10/22/1858398.html,转载请注明。




Sharepoint 2010 中配置同步连接报错. - bluehat

2010-10-22T08:43:00Z

在sharepoint 2010 管理中心配置同步连接(Configure Synchronization Connections )的时候,总会弹出一个提示框说“有一个用户配置文件同步正在运行,无法转到请求页面”,对应的英文提示是 "Cannot navigate to the requested page while User Profile Synchronizati...

 

(image)

在sharepoint 2010 管理中心配置同步连接(Configure Synchronization Connections )的时候,总会弹出一个提示框说“有一个用户配置文件同步正在运行,无法转到请求页面”,对应的英文提示是 "Cannot navigate to the requested page while User Profile Synchronization is running. Please wait for the current Sychronization run to finish."  甚至等半天几个小时都是这样的错,无法往下走。

对于这样的错误,可以按照以下顺序进行检查:

1.Central Administration -->Application Management –>Manage services on server, 确保“User Profile Synchronization Service”这个服务是已经启动了的。

(image)

2.Central Administration –>Monitoring—>Check job status ,里,User Profile Synchronization 的job在运行中,多刷新几次,确保已经成功完成,可以在历史作业里查看到。

(image)

3.在命令行里运行”services.msc”,查看Forefront Identity Mananger Service 和Forefront Identity Mananger Synchronization Services,确保这两个services是运行状态.

(image)

4,当以上三步都做完,然后返回User Profile Service Application 界面,选择Configure Synchronization Connections 时,如果还是继续报上面的错误,有两个办法解决:

a)重启电脑,搞定

b)Central Administration –>Monitoring—>Check job status,点击 左边列表的Scheduled jobs,找到一个叫做Timer Service Recycle,点击打开,然后点击”run now”. 直到等待这个job运行结束,即可搞定。

(image)

本文链接:http://www.cnblogs.com/bluehat/archive/2010/10/22/1858392.html,转载请注明。




Exchange 2007 内存使用问题 - bluehat

2010-10-22T07:49:00Z

有很多人问到关于Exchange 2007 Server 服务器的内存使用问题。 首先它和Exchange 2003 是有很大差别的,Exchange 2003是32位架构设计,所以内存最大使用限制是4GB.而Exchange 2007是64位的,对内存的使用将不再有限制,甚至可以高达32GB甚至更高.我自己在测试环境中甚至发现 Store.exe这个进程对内存的占有率甚至高达90%,这是个正常现...

有很多人问到关于Exchange 2007 Server 服务器的内存使用问题。

首先它和Exchange 2003 是有很大差别的,Exchange 2003是32位架构设计,所以内存最大使用限制是4GB.而Exchange 2007是64位的,对内存的使用将不再有限制,甚至可以高达32GB甚至更高.我自己在测试环境中甚至发现 Store.exe这个进程对内存的占有率甚至高达90%,这是个正常现象,如果你刚好遇到,不用但是是不是出了什么问题。

在Exchange 2003里,存储进程Store.exe 处理数据库缓存是有上限的,一般在900MB,但是在Exchange2007里,数据库缓存将没有限制,最小是512M,上不封顶,也就是说内存有多大,缓存就扩充到多大,你会发现如果没有其他应用程序使用内存的话,Store.exe这个进程甚至消耗掉96%的内存,这样的目的就是要降低数据库对磁盘的I/O访问,提高性能和响应时间。当发现有其他应用程序需要一定的内存时,Store.exe这个进程会自动的缩小数据库缓存来释放一部分的内存空间出来以供使用。

当然我们也可以设定数据库缓存大小来控制其对内存的无限制的占有,方法如下:

How to modify the default database cache size:
To modify msExchESEParamCacheSizeMax:
1. Start ADSI Edit.
2. Open the following object:
Configuration/Services/Microsoft Exchange/Your organization/Administrative
Groups/Your administrative group/Servers/Server name/Information Store
3. Right-click Information Store, and then click Properties.
4. Under the list of Attributes, scroll down and select msExchESEParamCacheSizeMax.
5. Click the Edit button, then type the number of 8 kilobyte (KB) pages that you
want to set the maximum cache size to.
    For example. 1GB cache equates to 1048576 (1024 * 1024). Divide the cache that you
want to set by 8kb to determine the value to enter. In this case, 1048576 divided
by 8 is 131072.

If you wanted to set the cache size to 16GB, the value would be 2097152 (16777216
divided by 8).

Note
======
The msExchESEParamCacheSizeMax parameter controls the ESE buffer size. Its
value is expressed as a page count, and must be set to an exact multiple of 8192
for maximum efficiency. If this value is not met, the cache size is rounded up to
the next 32-MB boundary when virtual memory is allocated. If this value is
incorrectly set, memory may be wasted.


6. Quit ADSI Edit, and then restart the Microsoft Exchange Information Store service.

不过,这样做可能会影响邮件服务器的性能,不建议大家这样做。

(image)

本文链接:http://www.cnblogs.com/bluehat/archive/2010/10/22/1858400.html,转载请注明。