SharePoint.Net

2006年4月26日 #

『转载』SMS常见FAQ

最近公司普查盗版软件,真的是删到手软,而且被ADMIN强推了SMS到电脑上,号称可以由网管部门协助进行正版事业(现在看来只不过是广告噱头罢了),于是那台P4 1.8G终于扛不住了,经常CPU 100%,在浏览器中打个网站要卡一分钟才打的上。怒。删之。在添加删除程序里找了半天都没有看到SMS字样。只能GOOGLE了。得一好文,转载如下。

原文连接:http://www.prain.net/article.asp?id=50

================= 偶就素那个很平常的分割线啦 ====================

1、如何卸载SMS Client Software
请在客户机上运行CCMClean工具即可卸载SMS Client Software,该工具包含在SMS2003 Toolkit 2中,请使用该链接下载SMS2003 Toolkit 2:http://www.microsoft.com/smserver/downloads/2003/tools/toolkit.mspx

2、如何删除SMS Site Server上的SLP Service
SLP是SMS系统的重要组成部分,我们不建议用户手动进行删除,同时不对用户手动删除系统服务造成的问题提供支持。
如果您确定要手动删除SMS_SERVER_LOCATOR_POINT服务,在注册表中删除[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SMS_SERVER_LOCATOR_POINT]即可。

3、SMS Agent Host服务和SMS_SERVER_LOCATOR_POINT服务的作用
SMS Agent Host是SMS Client的主服务。
SMS_SERVER_LOCATOR_POINT是SLP对应的服务,是SMS系统中的一个角色。它在客户端登录的时候,为Legacy Client提供CAP的定位,为Advanced Client提供MP的定位。

4、是不是安装SMS就会有这两个服务
SMS Agent Host是SMS Client的主服务,所以在Site Server和安装了SMS client的机器上都会出现。
SMS_SERVER_LOCATOR_POINT是SMS系统中的一个角色,因此缺省情况下,它出现在Site Server上。

关于SMS2003的更多信息,请参考以下文档:
SMS 2003 Concepts, Planning, and Deployment Guide
http://www.microsoft.com/downloads/details.aspx?FamilyId=784838B3-34E0-4122-B3E2-17C5B4EEF8F4&displaylang=en

================== 偶还是那条分割线 ====================

下载了ToolKit 2之后运行CCMClean卡了3分钟之后提示删除成功。然后再检查发现CPU已经平静下来。呼,成功。
记录此文,以备今后查找。

posted @ 2006-04-26 14:14 Viva 阅读(449) 评论(0) 编辑

2006年3月21日 #

『笔记』Webpart加载*.ascx页面转换代码

替换 xxxx.cs 文件中的RenderWebPart()方法。代码如下:

protected override void RenderWebPart(HtmlTextWriter output)
{
    
this.EnsureChildControls();
    _innerWebControl.RenderControl(output);
}


private System.Web.UI.Control _innerWebControl;

protected override void CreateChildControls()
{
    _innerWebControl
=this.Page.LoadControl("/bin/WebUserControlTest.ascx");
    
this.Controls.Add(_innerWebControl);
    
base.CreateChildControls ();
}

其中 LoadControl("/bin/WebUserControlTest.ascx") 就是要加载的 *.ascx 文件名了。

posted @ 2006-03-21 16:41 Viva 阅读(521) 评论(1) 编辑

『笔记』通过“编译完成后执行批处理”自动复制项目特定文件到发布服务器

因为在公司做WebPart经常需要发布一个项目中的少量几个文件到服务器的bin目录中,每次都要手动去复制,而且WebPart的调试不仅仅是那么简单的“运行项目”就能解决问题的。用过SPS的人应该都知道调试WebPart最烦人就是编译、上传、删除老的、导入新的这样一个循环。所以我也在想尽量的简化这个过程。听闻VS有一个自动发布的功能,无奈没有找到用法。干脆自己动手通过“编译完成后执行批处理”功能实现了指定文件发布到指定服务器的功能。

1、首先你要有服务器发布目录的写权限。这里我在服务器上用的是 \\spstest\bin 这个目录
2、在解决方案中新建一个新的“空项目”。


3、按照“主项目 - 空项目”设置编译顺序。



4、在空项目的属性中添加“生成事件”,这里可以用到宏来制作通用的语法,也就是说不同的项目可以共用同一个“空项目”。这里的生成事件就是最简单的DOS批处理命令了。


5、最后编译“主项目”就会按照“主项目 - 空项目 - 批处理命令段”的顺序来运行了。实现了自动复制的需求。


最后,我相信肯定有更好的方法来实现这个目的,呵呵,所以我这里用的方法只是一个便于理解的方法。记录如下,以备自己日后查找。

posted @ 2006-03-21 16:39 Viva 阅读(424) 评论(0) 编辑

2005年11月1日 #

『笔记』Session操作

Session的写入

            //将错误信息写入Session
            Session["sessionError"= strError;

            
//跳转至错误处理页面
            Server.Transfer("Error.aspx");


Session的读出和清除

            //得到前页Session
            string strError = Session["sessionError"].ToString();
            ErrorShow(strError);
            Session.Remove(
"sessionError");

Session的彻底清除可以用 Session.Clear();
听同事说Session的页面跳转一般都用Server.Transfer("AimPage.aspx"); 而不是用 Response.Redirect("AimPage.aspx");
还没搞懂两个的区别,不过可以看出的就是地址栏的地址的不同。

不知哪位朋友能方便解释一下。

posted @ 2005-11-01 14:05 Viva 阅读(915) 评论(4) 编辑

『笔记』常用命名规则

1、数据库

  表名前缀我规定为“T_”,表示Table。且遵循土耳其命名法,每个首字母大写。如 T_ArticleFeedBack。
  如果一个表的内容恒久不变,换句话说就是在编程开始前就初始化了,今后不会发生改变的表前缀为“T_Code”,如天气表:T_CodeWeather。这样就可以一目了然每个表是大概干嘛用的。另外知道一些基本性质。

  视图前缀为“V_”开头,表示View。这个和表的命名规则一样就不赘述了。

  表里面的每个Column都是大写开头。比如 Id、Person、UserName 等等。这样做的好处是编程时对应的O/R M对象必须是小写开头,我可以使用 userName 对象对应 UserName 这个 Column。

2、控件

  目前常用到的控件前缀如下表所列,以后还会慢慢增加: 

TextBox                      txtXxxx
Button                        btnXxxx
DropDownList          ddlXxxx
CheckBox                   chkXxxx
Label                           labXxxx

  比如一个选择天气的下拉列表就是 ddlWeather。一个文章标题的输入框就是 txtTitle。一目了然。注意前缀之后第一个字母的大写。后面遵循土耳其命名法。

3、对象

对象除了要小写开头外,我还采用了一个新的机制,当新生成一个对象实例的时候,我将在后面添加“u”字母表示这是一个对象实例。u就是Unit单元的意思。如下例:

Object objectu = new Object();
PersonArticle personArticleu 
= new PersonArticle();


目前总结如上,已经足够常用的操作了。记录下本文,以备今后查阅。

posted @ 2005-11-01 10:29 Viva 阅读(874) 评论(11) 编辑

『笔记』.Net中结合iBatisNet查询的DropDownList数据绑定

  其实标题中写iBatisNet查询有点特殊化的意味。其实DropDwonList控件可以接受很多种类的结果集作为他的数据源。比如Set、HashMap、IList。这里我是采用了iBatisNet中常用的IList结果集作为数据源的。
        private void Page_Load(object sender, System.EventArgs e)
        
{
            
// 在此处放置用户代码以初始化页面

            
if(!IsPostBack)
            
{
                
//构造当前时间
                this.txtTime.Text = ClassLib.getCurrentTime();

                
//构造天气列表
                this.ddlWeather.DataSource = ClassLib.getWeatherList();
                
this.ddlWeather.DataValueField = "Id";
                
this.ddlWeather.DataTextField = "Weather";
                
this.ddlWeather.DataBind();

                
//按用户构造文章分类
                this.ddlCategory.DataSource = ClassLib.getCategoryList(ClassLib.getUserId());
                
this.ddlCategory.DataValueField = "Id";
                
this.ddlCategory.DataTextField = "Title";
                
this.ddlCategory.DataBind();
            }

        }

  为了增加程序的封装性,我把对数据库的查询动作封装到了一个统一的全局类库中(ClassLib.cs)。这个文件中包含了几个查询动作。这里举例其一:
        //得到天气列表
        static public IList getWeatherList()
        
{
            IList listWeather 
= Mapper.Instance().QueryForList("SelectAll",null);
            
return listWeather;
        }


        
//得到分类列表
        static public IList getCategoryList(int _userId)
        
{
            IList listCategory 
= Mapper.Instance().QueryForList("SelectByUserId", _userId);
            
return listCategory;
        }

  绑定动作是很容易懂的。声明DropDownList的数据源DataSource,接着绑定结果集中的特定列到Value和Text就可以了。

posted @ 2005-11-01 10:11 Viva 阅读(1022) 评论(0) 编辑

『笔记』iBatisNet的SQL动作

1、Select方法
  与iBatis For Java一样,iBatisNet的Select方法仍然可以返回List这个非常好用的集合对象。不过在.Net环境中,List对象改了一个定义方法。请看如下代码:

        //得到天气列表
        static public IList getWeatherList()
        
{
            IList listWeather 
= Mapper.Instance().QueryForList("SelectAll",null);
            
return listWeather;
        }


        
//得到分类列表
        static public IList getCategoryList(int _userId)
        
{
            IList listCategory 
= Mapper.Instance().QueryForList("SelectByUserId", _userId);
            
return listCategory;
        }

2、Insert 和 Update 方法
  看了iBatisNet的Guide上面写的是sqlMap.Insert("InsertPerson", personu)。但是貌似sqlMap仅仅是iBatis For Java里面的一个关键字。我在.Net环境中始终提示错误。后来改写成如下形式就可以了。反正我们需要的仅仅是一个Instant,一个Mapping的实例而已。

        //组装Article对象写库
        private void postArticle()
        
{
            T_Article articleu 
= new T_Article();
            articleu.CategoryId 
= Convert.ToInt32(this.ddlCategory.SelectedValue);
            articleu.UserId 
= ClassLib.getUserId();
            articleu.WeatherId 
= Convert.ToInt32(this.ddlWeather.SelectedValue);
            articleu.Title 
= this.txtTitle.Text.Trim();
            articleu.Summary 
= this.txtSummary.Text.Trim();
            articleu.Content 
= this.cePostArticle.Text;
            articleu.CreateDate 
= this.txtTime.Text.Trim();
            articleu.Visible 
= Convert.ToInt32(this.ddlVisible.SelectedValue);
            articleu.Feedbackble 
= Convert.ToInt32(this.ddlFeedbackble.SelectedValue);
            articleu.VisitTimes 
= 0;
            Mapper.Instance().Insert(
"InsertArticle",articleu);
        }


Mapper.Instance().Insert("InsertArticle",articleu);

生成一个Mapping实例,然后调用iBatisMap的内置方法Insert("FunctionName", Object)就可以了,其中InsertArticle是我在XML文件中定义的一个插入方法。

posted @ 2005-11-01 10:03 Viva 阅读(737) 评论(0) 编辑

2005年10月27日 #

『笔记』CuteEditor试用

  主管要给公司的Portal做一个多用户BLOG。感觉博客园就是一个不错的例子。之前也看了不少CuteEditor的介绍。始终没有实践一下。现在赶鸭子上架了。迅速到CuteEditor官方网站下载了一个最新的。然后胡乱搜索了一个Key。就成了不过期的企业版了。(PS. 别找我要Key哈。)看了下Sample,还是挺简单的。
  新建一个工程,添加两个新引用CuteEditor.dll和NetSpell.SpellChecker.dll。后面一个是语法检查的包,貌似如果不用这个功能就可以不用加载,不过姑且加上少点意外,重要的一点,要把Key文件(cuteeditor.lic)和CuteEditor.dll文件放在同一个目录下。否则工程运行时会提示过期。
  接着,要把CuteEditor的运行必须文件复制过来了,在这里我们只需要复制一个CuteSoft_Client目录过来就可以了。另外特别的一点,因为CE需要用到一个CSS文件,我们要把cs文件夹下面的editor.css文件也拿过来。我是放在了根目录下的CSS文件夹下面,如果放在不同地方,那下面一行代码要改。
  好了,在WebForm的cs文件开头部分添加一个声明:

<%@ Register TagPrefix="CE" Namespace="CuteEditor" Assembly="CuteEditor" %>


接着在<body>里你需要的位置添加一行调用编辑器的代码,如下:

<CE:EDITOR id="cePostArticle" runat="server" EditorWysiwygModeCss="CSS/editor.css" ShowHtmlMode="False"></CE:EDITOR>
这样,一个CuteEditor就搭好了。可以运行一下工程看看成果了。十分的简单。
  CuteEditor和其他.Net控件没有本质区别,也有很多的属性,这些属性可以在VS.Net的属性编辑里看到。比如可以屏蔽掉HTML代码查看等等。这个就自己去研究研究吧。
  CE是目前十分优秀的一个WYSIWYG编辑器(所见即所得),而且整个工程可以在任何位置通过添加上面的一行代码的方法来实现对一个功能强大的编辑器的调用。

posted @ 2005-10-27 13:53 Viva 阅读(1071) 评论(1) 编辑

2005年9月26日 #

『求助』在Webpage上调用Windows Messenger API

摘要: 最近在工作中遇到一个在WebPage上调用Windows Messenger API的需求,于是到MSDN上大搜一番,还是有所收获。相关链接如下:http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/nacwebteam09032001.mspx?pf=true  其中包含了一段MSNInstantMessenger...阅读全文

posted @ 2005-09-26 11:17 Viva 阅读(2863) 评论(14) 编辑

仅列出标题  

导航

统计信息