老衲

^_^劫色的.net
posts - 6, comments - 28, trackbacks - 0, articles - 1
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

2011年2月25日

安装Outlook 2007后,只支持新的.msg邮件格式,而不支持双击打开.eml格式,
下面方法可以解决此问题:

Windows Vista / XP 下

1、关闭 Outlook 2007。
2、regedit,打开注册表
3、修改HKEY_CLASSES_ROOT\Microsoft Internet Mail Message\shell\open\command
打开默认 REG_EXPAND_SZ 型键,
修改键值为
"%ProgramFiles%\Microsoft Office\Office12\OUTLOOK.EXE" /eml "%1"
保存即可。

 

 

Windows 7 下

1、关闭 Outlook 2007。
2、regedit,打开注册表
3、修改HKEY_CLASSES_USER\Software\classes\Applications\OUTLOOK.EXE\shell\open\command
打开默认 REG_EXPAND_SZ 型键,
修改键值为
"%ProgramFiles%\Microsoft Office\Office12\OUTLOOK.EXE" /eml "%1"
保存即可。

 

 

posted @ 2011-02-25 14:41 xiangxiang 阅读(989) 评论(0) 编辑

2007年3月27日

网上提供了很多sqlserver发送邮件的文章,转载居多,大部分介绍win2000+outlook2000环境,在操作系统和office已经更新换代的今天,意义不大。
现在工作中碰到了需要利用sqlserver发送邮件的问题,特整理文字如下:

目的:利用Sqlserver代理的邮件会话建立操作员监控作业完成情况

测试环境:
 操作系统:windows 2003/windows xp
 OutLook: OutLook 2003
 测试的电子邮件: yyy@xxx.com

第一步:建配置文件
开始->控制面版->邮件>双击邮件->添加->配置文件名称(mySqlFile)
添加新电子邮件帐户->选择POP3(P)->

用户信息:
姓名:yyy
邮件地址:yyy@xxx.com

登录信息:
用户名:yyy
密码:****

接收邮件服务器(POP3)(I): pop3.xxx.com
发送邮件服务器(SMTP)(O): smtp.xxx.com
点击其他设置->发送服务器->选中(我的发送服务器(SMTP)要求验证)->选择登录使用

用户名:yyy
密码:****

选中记住密码

确定

测试帐户设置->成功->下一部->确定

打开OutLook软件,测试是否能正常接收邮件,一切OK,进行下一步配置
注:OutLook配置好后,必须重启

第二步:配置数据库服务器采用邮件配置文件

开始->控制面版->管理工具->服务->选择SQLSERVERAGENT服务->属性->登录->
选择此帐户(填写当前登录操作系统用户名密码),切不可选择本地系统帐户

第三步:数据库验证是否成功

企业管理器->展开服务器->管理->SQLServer 代理->邮件会话->邮件配置文件下拉框选择mySqlFile 点"测试" 弹出"已用此配置文件成功地启动(和停止)了一个邮件会话"即表示成功。
点"确定"重启Sqlserver代理服务。

第四步:测试邮件
企业管理器->展开服务器->管理->SQLServer 代理->操作员->新建操作员->属性->常规选项卡
在电子邮件名称中输入一个测试邮箱 :aaa@bbb.com 点"测试"即可到aaa@bbb.com中去收邮件了

注:在整个过程中一定要保持outlook是启动的
如果你配置了sqlserver的邮件配置文件后后再尝试打开outlook,是失败的,会弹出"无法打开默认电子邮件文件夹"的对话框,因为sqlserver占用了邮件配置文件,这时需要你把SQLSERVERAGENT服务停掉,再打开outlook,然后再把SQLSERVERAGENT服务启动

posted @ 2007-03-27 17:12 xiangxiang 阅读(623) 评论(3) 编辑

2007年2月28日

前一段时间研究了一下抓取网站的东东,有个很好的工具wget,很多unix操作系统是默认安装的,也有windows版本的wgetwin,大家可以去g一下。
这两天又需要一个抓取网页图片的程序,设想可以通过分析网页源代码获取网页上图片的链接,然后跟踪这些链接获取图片信息,然后下载指定尺寸或大小的图片。
写了一段代码

private void PrintImg(string baseUrl,stringparamID)
  {
   this.Response.Clear();   
 
   string   strUrl2=baseUrl+"icon/"+paramID+".gif";  
   System.Net.HttpWebRequest hwreq = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(strUrl2);  
   System.Net.HttpWebResponse hwrep= (System.Net.HttpWebResponse)hwreq.GetResponse();  
   System.Drawing.Image        bmp =  System.Drawing.Image.FromStream(hwrep.GetResponseStream());

   System.IO.MemoryStream ms = new MemoryStream();
   bmp.Save(ms,ImageFormat.Png);

   Response.ClearContent(); //需要输出图象信息 要修改HTTP头
   Response.ContentType = "image/gif";
   Response.BinaryWrite(ms.ToArray());  

   this.Response.End();
  }

不过通过虚拟路径抓取远程图片时,如果网络很慢或者连接不通的时候会发生异常
所以在GetResponse的时候:
try
{
   System.Net.HttpWebResponse hwrep= (System.Net.HttpWebResponse)hwreq.GetResponse();  
}
catch
{
   throw new ApplicationException("network exception");
}

此方法在获取HttpWebResponse 对象的时候很慢,要了解此情况的存在,布置好你的应用程序

posted @ 2007-02-28 17:52 xiangxiang 阅读(1425) 评论(0) 编辑

我们在创建ASP.NET应用时,常常会碰到在页面之间传递参数的应用,在页面之间传递参数有好几种方法(Url地址法、Application/Session、Cache、Cookie),如何在页面之间有效的传递参数呢?下面我们来一一分析。

 

    

[b]Url地址法[/b][/align]
     定义:在页面地址后面附带参数的方式浏览页面
     使用:
     我们可以用两种方法来传递Url地址在不同页面之间切换并且传递参数:
     服务器端方法(Response.Redirect) 在此方案中,服务器只是将上下文传输到另一页。其优点是您可以共享页之间的页上下文信息。其缺点是用户的浏览器不知道在进行传输,因此不更新浏览器的历史记录。如果用户刷新此页,则可能会产生意外的结果。例如:Server.Transfer("Test.aspx?ParaID=ParamValue");

 

     使用浏览器(Server.Tansfer) 在此方案中,将一个命令发送到用户浏览器,使浏览器获取另一页。其优点是更新浏览器的历史记录。其缺点是此方案执行额外的往返过程,这会影响性能。
     例如:Response.Redirect("Test.aspx?ParamID=ParamValue");

                               性能及安全性分析
     性能:1、只能传递字符型参数,且长度受限,传递对象要先手工序列化。
           2、Url地址法可以很方便的在页面之间切换并传递参数,无需额外的处理,基于正常情况比较不会性能损失。
     安全性:
     1、很容易导致错误:开发人员可能没有对参数和地址进行编码,参数可能包含一些非法字符从而导致错误;
     2、信息泄露:Url地址在客户端可见,导致会泄露信息,可能被黑客用来攻击系统。比如有些网站通过这个方法在页面传递一些关键参数,导致某些专业用户只需要适当修改这个Url中的参数值就可以获得额外的访问权限,进行非授权的操作,这显然是我们所不期望的。
     
     建议:1、地址要编码;2、参数加密,但带来性能损失。3、在安全性要求较高的系统中我们不推介使用这种方法,他只适合在一些安全性要求不高,页面逻辑比较的简单的的场合。

     Tips:在页面跳转时将 Response 对象的 BufferOutput 属性设置为 true 来提高性能。

     

[b]使用Application/Session传递[/b][/align]
     定义:通过在Application/Session中定义变量的方式在页面之间传递参数的方法
     使用:我们可以在Application/Session定义变量,例如定义参数
 Application["ParamID"]=ParamValue;
 Application["ParamID"]=ObjectInstance;
 Session["ParamID"]=ParamValue;
 Session["ParamID"]=ObjectInstance;
 在页面中引用参数:
 VarID=Application["ParamID"];
 VarID=Session["ParamID"];
 这种方式传递参数就是逻辑简单清晰,保密性好,对用户透明;需要靠率会话(Session)过期的问题.
                          性能及安全性分析
      性能考虑:
      1、可以传递任何值,对象自动序列化,但来额外的性能损失;
      2、Application/Session都要占用内存,消耗宝贵的服务器资源,且需要手工释放变量;
      安全性:
      1、Application是全局对象,任何用户都可以访问,可能导致用户变量之间的值覆盖,从而丢失信息。
      2、对用户透明,保密性较好

 

      建议:1、对用户量较大的系统不推介使用,因为要消耗大量的内存资源。2、适宜用在传递一些关键全局性的参数,且宜为字符类型的参数,千万不要通过它来传递大内存对象。
      
                      

[b]使用Cache传递参数[/b][/align]
      定义:通过在全局对象Cache中定义变量来传递参数的方法。
      使用:详细应用请见NET Framework SDK文档
      定义变量:Cache.Add("ParamID", "ParamValue", null, DateTime.Now.AddSeconds(60), TimeSpan.Zero, CacheItemPriority.High, null);
      在页面中使用:VarInstance=Cache["ParamID"];
      Cache方式传递参数有些复杂,可以传递任何值,享受内存自动回收的好处。

 

   性能及安全性分析
      性能考虑:
      1、可以穿传递任何值,对象自动序列化,但来额外的性能损失;     
      2、要占用内存,消耗宝贵的服务器资源,在设置生存期后系统可以自动释放所占用内存。主要其生存期时间,否则就和Application一样的效能。
      安全性:
      1、Cache也全局对象,任何用户都可以访问,可能导致用户变量之间的值覆盖,从而丢失信息。
      2、对用户透明,保密性较好

     建议:这是笔者认为最好的传递参数的方式,在设定参数的生存期的情况下,生存期尽可能的短,以使系统自动回收内存,当然用户也可以手工释放打倒回收内存的效果。

                           

[b]Cookie(小甜饼)法[/b][/align]
     定义:通过把参数定义在Cookie中在不同页面之间传递参数的方法
     使用:定义变量:
     HttpCookie MyCookie = new HttpCookie("ParamID");
       MyCookie.Value = ParamValue;
       MyCookie.Expires = now.AddHours(1);
       Response.Cookies.Add(MyCookie);
     在页面中使用:VarInstance=Request.Cookies["ParamID"].vlaue;更完整的用户请参见NET Framework SDK文档

 

                     性能及安全性分析
     性能考虑:
     1、可以存储字符型数据,且长度受限,不适宜传递大数据;传递对象需要手工序列化。
     2、参数在客户端和服务器端来回传递,占用网络带宽。
     安全性:
     1、Cookie在客户端保存,用户可以查看,会导致信息泄露,可能为黑客所利用来攻击系统。
     2、Cookie在客户端和服务器段来回传递,可能被截获,可能为黑客所利用来攻击系统。

     建议:1、如果需要保留跨天的数据,否则不建议使用;2、数据需要加密保证安全性;3、一定要设置好生存期[过期]时间。

posted @ 2007-02-28 17:28 xiangxiang 阅读(1006) 评论(1) 编辑

2007年2月14日

硬件环境:windows2000/xp .net framework 1.1
   IDE : vs.net 2003英文版
在创建一新页面时出现这个错误提示,并且没有.cs文件生成
双击aspx文件也有同样的错误:
The class file 'WebForm1.aspx.cs' specified as the codebehind for 'WebForm1.aspx' could not be loaded. Make sure that the codebehind attribute in the page or control directive properly references an existing code behind file


解决办法: tools - options - Environment - International settings - language 在下拉框中选择 Same as Microsoft Office 保存即为OK
如果你看到的是中文菜单:即为tools - 选项 - 环境 - 区域设置 - 语言 在下拉框中选择 Same as Microsoft Office 保存
 英文版的vs.net2003如果在此选为中文的话就会出现上述问题  

posted @ 2007-02-14 11:23 xiangxiang 阅读(109) 评论(0) 编辑

2006年11月24日

      做网站也蛮久了,有时候经常会遇到一些需要轮播的图片,现在网上比较流行的,使用比较方便的就是pixviewer.swf这段flash了,今天因为有人要在我们网站的焦点图片上投放广告,而这个焦点图就是使用这段flash来轮播的,可惜我加了一个广告上去怎么也不显示最后一张图片的数字小按钮,我一位我新加的广告有问题,经测试,没问题,我才发现这段flash只支持最多6张图片,再多的话就可能会有问题了,google,baidu了一下没有这样的介绍文章,只好自己写一下,希望对用到这段flash的人有用。
   ps:pixviewer.swf这段flash只支持jpg和jpeg格式的图片,不支持gif

怎么使用pixviewer.swf这个flash,网上这样的文章很多,我就不重复了,可是看腻了使用pixviewer.swf做出来的千篇一律的页面效果,于是很多人都想diy一下这个flash,上网搜了一下,很难找到这个文件的fla源文件,所以把这个东西的源文件贴上来,分享给大家

http://files.cnblogs.com/jesse/focus.rar

posted @ 2006-11-24 09:26 xiangxiang 阅读(5351) 评论(24) 编辑