摘要: 从小学到中学、在到大学,我常常在书上看到“做事一定要有目标、要有计划,不然的话,你就像水中的漂浮东飘西荡,毫无目的,整天碌碌无为!”其实我在很早的时候也意识到做计划和设定目标的重要性,也不止一次的给自己设定目标和做计划,但是一次又一次的打击让我们害怕设定目标,害怕做计划。阅读全文
posted @ 2012-04-19 10:38 红酒咖啡 阅读(89) 评论(0) 编辑
摘要: Infopath重复节和重复表中实现序号自动递增效果补充阅读全文
posted @ 2012-01-10 17:50 红酒咖啡 阅读(215) 评论(0) 编辑

今天从Intel博客里面看到了这篇文章还不错,记录下来

1) 不要在线程函数体内操作MFC控件,不要再线程里面调用UpdateData函数更新用户界面,而应该尽量采用发送消息的方式,在主线程的消息响应函数中操作控件;

2)不建议采用SendMessage往主线程发送消息,因为它是同步的,阻塞的,可以考虑采用PostMessage代替;

3)线程退出时,尽量不要使用TerminateThread函数,而尽可能的让线程自己退出;

4) 当线程退出时,必须先等待工作者线程退出,主线程才退出,但是在主线程里面不要使用WaitForSingleObject或 WaitForMultiObjects等待线程结束,因为它可能造成死锁,当主线程使用这两个函数时,主线程就挂起了,尤其在第 (1), (2) 种情况下,工作者线程还在调用主线程里面的资源,这样造成死锁;

5) 为了防止退出死锁的发生,尽量使用MsgWaitForMultipleObjects函数,因为该函数等待时,可以等待线程句柄 有信号,而且还可以等待消息,不会造成死锁;

原文地址:http://software.intel.com/zh-cn/blogs/2011/08/03/windows-2/?cid=sw:prccsdn1945

posted @ 2011-08-05 11:17 红酒咖啡 阅读(71) 评论(0) 编辑

  公司有一个文档库,因为同事提交的文档要进行权限和内容的处理,所以之前搭建此功能的同事在此文档库里面加入了EventHandler事件处理。这个文档库主要工作都是集中到每个月的几天,导致这几天都要经常重启IIS或者服务器。只能去查看源代码了。

  在查看源代码的过程中,没有发现有什么问题出现。只能通过EventHandler调试方式来进行源代码的调试(EventHandle调试方式网上找的),进行调试的时候发现,在进行权限处理之前的SPListItem的获取很慢,都要20秒左右(此文档库里面有3万多的文档),红色的代码为出问题的地方,代码如下:

SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite Site = new SPSite(properties.SiteId))
{
using (SPWeb Web = Site.OpenWeb(properties.OpenWeb().ID))
{
StringBuilder sb
= new StringBuilder();
SPList List
= Web.Lists[properties.ListId];
SPListItem Item
= List.Items.GetItemById(properties.ListItemId);

SPRoleDefinition Read
= Web.RoleDefinitions["读取"];
SPRoleDefinition Create
= Web.RoleDefinitions["创建"];
SPRoleDefinition Delete
= Web.RoleDefinitions["删除"];
SPRoleDefinition Edit
= Web.RoleDefinitions["编辑"];

SPUser Author
= Utility.GetFieldUser(item, "创建者");
SPRoleAssignment Ra
= new SPRoleAssignment(Web.EnsureUser(Author.LoginName));
if (!Item.HasUniqueRoleAssignments) Item.BreakRoleInheritance(false);

Ra.RoleDefinitionBindings.Add(Read);
Ra.RoleDefinitionBindings.Add(Create);
Ra.RoleDefinitionBindings.Add(Delete);
Ra.RoleDefinitionBindings.Add(Edit);


Item.RoleAssignments.Add(Ra);

}
}

});

  查找了许多资料也没有找出是什么原因,后来想到SharePoint的文档都是存放在数据库里面的,这个文档库有3万多个文档,GetItemById(properties.ListItemId) 就相当于 使用Where通过ID条件来查询出这个文档。那么SPList.Items.GetItemById中的SPList.Items是否是将此列表的所有文档3万多条记录都读取出来,有这个想法主要是可以使用 SPListItemCollection item = SPList.Items 来处理所有文档。如果这个成立的话那么慢的原因就出来了,此语句的操作是:先将这个文档库的所有Select出来再通过ID来读取我们想要的Item。

  那么是否有直接通过ID条件来获取Item的API吗,试一下,真是内牛满面,真有一个SPList.GetItemById 这个方法,试了一下,天呀。什么叫提高效率,这才叫提高效率,原本处理完11个文档要3分钟40秒即(220秒)而现在只要(3秒)。神马都是浮云。这是多少倍:220%3=73.333。天呀。怪不得,怪不得偶要累了一个月。

  偶晚上就给她更新到生产环境看看是否会再出重启IIS问题,同时因为我只学习了二个月的SharePoint,且主要都是在处理各种原来存在的Bug,所以我们理解就是这样,希望大家看到后可以给我一些明确的指导。在此先谢谢了!



posted @ 2011-07-20 17:58 红酒咖啡 阅读(175) 评论(0) 编辑

  在一台服务器上安装了SharePoint 2007 X86 简体中文版本后,将其卸载后。再次安装完成后,在配置WSS3.0时到了第二步“配置数据库”时出现了以下错误:

  未能创建配置数据库。
            已引发类型为Microsoft.SharePoint.SPException的异常。其他异常信息:The language is not supported on   the server.

  导致了Wss3.0没有办法配置成功,重新卸载一遍,并重启后,还是到了这一步出现了问题,回想一下步骤没有问题的还是选择“高级”=》“完整”的形式安装。

  因为只有一个人在研究,所以也没有什么认识的人,只能Google了,找了好久才找到一个MSDN里面的英文说明。是因为卸载第一遍后,导致注册表里面少了“ServerLanguage”,对方给出了以下注册表指令

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\
12.0\ServerLanguage]
"1033"=""
复制到记事本后,保存成aaa.reg,双击后导入注册表。再次进行配置WSS3.0,这时候晕了,一打开后界面变成英文了,还提示了一些错误。汗,难不成这个数值是英文版专用的。没办法只能去找服务器管理员要来了一台可以运行的SharePoint生产服务器。到注册表里面查看了“ServerLanguage”一看不对呀,怎么是2052难不成简体中文版的是这个值(还好我会一些注册表的东东),ok ,要就试一下,马上修改一下上面的代码如下:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\
12.0\ServerLanguage]
"2052"=""

  修改刚才的aaa.reg 保存后双击导入注册表。再次开始WSS3.0配置。OK,终于可以了。

  注:因为刚才出错了,所以要去删除二个数据库,一个是刚才设置的配置数据库和WSS3.0管理中心的数据库(汗,这个每配置一次都不一样的名字,真不知道怎么让他们一样)

posted @ 2011-07-06 16:06 红酒咖啡 阅读(154) 评论(0) 编辑
摘要: SharePiont文档库里面是可以使用Aspx页面的,可以使用Asp风格的代码添加Asp.net代码进行相关操作如下:<%@ Page Language="C#" %><%@ Import Namespace="Microsoft.SharePoint" %><%@ Import Namespace="Microsoft.SharePoint.WebControls" %><html xmlns:mso="urn:schemas-microsoft-com:office:offic阅读全文
posted @ 2011-06-09 17:55 红酒咖啡 阅读(142) 评论(0) 编辑
摘要: IIS里面有限制IP访问的功能。但是没有同段IP的直接方法可以按下面的方法进行操作  网站属性=》目录安全性=》IP地址和域名限制 添加一组计算机。。。然后IP段的前三位,,后4位为0。。子网掩码为 255.255.255.0 例: 开发127.0.0.1~127.0.0.254的IP 127.0.0.0 255.255.255.0阅读全文
posted @ 2010-06-13 11:50 红酒咖啡 阅读(284) 评论(0) 编辑
摘要: 可执行文件在: C:\WINDOWS\system32\inetsrv\ssinc.dll 。扩展名为:shtml/shtm此执行文件是用来执行.shtml和.shtm文件的打开IIS管理器,打开“本地计算机”的属性 》MIME类型 》新建后缀名:.shtmlMIME类型:text/html再新建后缀名:.shtmMime类型:text/html然后点击确定。找到Web服务...阅读全文
posted @ 2010-05-21 11:33 红酒咖啡 阅读(41) 评论(0) 编辑
摘要: 在windows下安装完Mysql他的数据库默认是在 C:\Documents and Settings\All Users\Application Data\下面的。。所以为了安全和便于管理,,就将Mysql安装目录下面的My.ini下的Datadir="新路径" 修改了一个自己想要存放的目录的这下问题来了,服务器重启后(习惯经常看一下目志)发现 应用程序 那边出现了Fatal error: C...阅读全文
posted @ 2010-05-07 10:59 红酒咖啡 阅读(4662) 评论(1) 编辑