18:30补记,刚才偶然看了一下html代码,结果发现——http://www.microsoft.com%01%00@66.235.193.39/~cnnurgen/microsoft/downloads/details.html,晕死!这个漏洞微软不补?大家迟早死翘翘!
Dear User.
At 3 : 18 Eastern Time on Thursday-January 29, 2004,
Microsoft launched investigating reports of a variant of a new worm “Novarg”, known as Mydoom.A.
This virus reportedly terminates access to all websites, including any Microsoft.com websites. The virus is noticed to entice mail recipients into opening a message with a file attached. If the attachment is opened, virus installs malicious software on the computer user’s system and sends itself to all contacts in the user’s address book.
Please download the latest update available from Microsoft.com website.
www.microsoft.com/downloads/
我去看过了,好像只提供了for XP的,也可能以为着,对于2000的用户没有影响。也可能还没有放出for 2k的,大家最好还是关注一下Windows Update and click “Scan for updates.”
所有的毕业设计题目的任务书我已经写完。虽然头儿说,不要对学生要求非要用什么语言,但是我还是希望选我题目的学生都用dotnet。所以,我打算把网上一些比较好的入门文章收集起来,到时候给他们快速入门。
顺便也是为了程序员联盟做经典的入门文章。
上次在windows 2000服务器怪问题中说到一些服务器故障问题,在新朋友Yu Yong的帮助下找到这个工具,感觉还不错。下面是介绍——
Debugging Tools for Windows(R) contains tools to analyze and debug Windows,Windows driver, and pplication failures.
The kernel debugger is KD.exe. It can be installed and run on all the platforms listed below. It can debug all the platforms listed below.
The user-mode debugger is CDB.exe. It can be installed and used on all the platforms listed elow.
WinDbg.exe is the GUI version of the debugger. It supports both user-mode and kernel-mode debugging. It can be installed and run on all the platforms listed below. It can debug all the platforms listed below.
Supported platforms:
Windows NT 4.0 (x86)
Windows 2000 (x86)
Windows XP (All CPU architectures)
Windows Server 2003 (All CPU architectures)
Windows codename “Longhorn” (All CPU architectures)
其实,我用到的也就是将系统的dump打开,每次系统非正常关机或者重起之后,都会生成一个后缀为.dump的文件,之后用Debugging Tools for Windows打开这个文件,一步一步地就可以找到错误,当然错误都是些代码,比如GetContextState failed, 0×80004005,那还需要找相关的说明。总比不知道的好。
更多的信息可以查看微软WHDC主页的debugging tools。
昨天,老鼠(一个朋友的简略昵称)给我打电话聊天,说来说去就是他太无聊,另外无法摆脱自己目前的状态——知道有很多事情必须要做,而且很急,可就是不想动手。当时他问我怎么办,我说我也有过,过两天就好了(他说他已经快一个月了吧,记不清楚了)。因为我确实不知道自己如何摆脱这样的状态的。
仔细思量了一下,其实无他,唯“懒”!一种惰性。该怎么解决呢?中午吃饭的时候又想起这个问题来,现在终于有点眉目了。
——就是尝试去做,哪怕做一会儿玩一会儿,只要能集中精力1分钟也好。
Just do it, now ! 应该就是这么简单。慢慢慢慢的就让自己动起来了。
一会儿他上线了给他说。先记在这里,以后自己再陷入这样的问题也可以很快摆脱了。
这是中国新年我的第一个日志,今年本命年,猴儿阿!呵呵。要低调么?要穿红xx么?要忌口么?我没这么迷信………..
长期以来,所有的网络脚本都是使用免费的邮件服务器发送邮件,或者是自己的(我了解到的如此,恕我孤陋寡闻)。.NET 1.1已经提供了这个功能。刚才在开心的blog上看到——如何通过需要验证的邮件服务器发送邮件?真的不错。
在此,想到大鱼用.Text构架的这个blog,现在的邮件功能还不能使用。希望大鱼看看,改进改进,呵呵。另外这个代码也可以供平常使用,一举两得。贴出代码,以免我忘记了。
private void Page_Load(object sender, System.EventArgs e)
{
MailMessage mail = new MailMessage();
mail.To = “me@mycompany.com”;
mail.From = “you@yourcompany.com”;
mail.Subject = “this is a test email.”;
mail.Body = “Some text goes here”;
mail.Fields.Add(“http://schemas.microsoft.com/cdo/configuration/smtpauthenticate”, “1″); //basic authentication
mail.Fields.Add(“http://schemas.microsoft.com/cdo/configuration/sendusername”, “my_username_here”); //set your username here
mail.Fields.Add(“http://schemas.microsoft.com/cdo/configuration/sendpassword”, “super_secret”); //set your password here
SmtpMail.SmtpServer = “mail.mycompany.com”; //your real server goes here
SmtpMail.Send( mail );
}
参考资料:
http://vaultpub.sourcegear.com/VaultService/VaultWeb/Blame.aspx?repid=7&path=$/Dottext/Dottext.Framework/Email/SystemMail.cs&version=1&includedversions=20 (用户名及密码为guest)
http://www.systemwebmail.com/faq/3.8.aspx
最近学校我们部门的服务器老出问题。自己找不到原因,拿出来和大家讨论——
硬件配置——
HP750服务器,1G内存,PIII志强700*2,SCSI160硬盘 36G,外挂1T磁盘整列。
系统及软件——
windows 2000 en server,Microsoft .NET Framework v1.1,serv-u 4.1.2。所有补丁都打好了的
出现的问题和相关状况——
1.服务器无故自动重起,检查系统日志,没有发现异常,估计是内存耗尽或者其他原因;
2.无故自动重起后,iis挂起,所有的站点停止。查看日志,发现启动时说连接iis服务超时。
3.无故自动重起后,手工打开iis站点,可运行。
需要的朋友到这里下载——http://down.17bt.com/soft/15038.htm。我居然是用google搜索英文的时候搜索到的,从国外一个站点链接过去的。还不错。不过这个破解很有限,版本号以及发行日期不同,会影响主文件的大小,如果主文件不和破解上面写的大小一样,就无法破解。
最近两天,都在准备04年8号下午的那个汇报。也就是咱们部门做的东西,拿到整个学校做一个2003年的总结。我也就做ppt,写演说稿,头儿也很重视,对我的幻灯以及我的讲稿申了两遍,我也为此通宵两天,整整48个小时只睡了5个小时不到。
昨天下午,本来我是第二个汇报的,可第一个没来,我就成了第一个,一切还算顺利。只不过校长到最后提醒我——你还有一分钟时间!我晕。自己还有至少一半没说。那就加快进度。最后用一句——我想再耽搁各位领导一分钟时间。顺利说完结束的。可最后还是有一点画龙点睛的50个字没说。接着就是提问之类,顺利!刚才同事告诉我,我们得分最高,我也显得很平静。why?
use my eyes,虽然我准备的稿子,老总也操了心,反复审稿,叮嘱。但是我只是完成了一个句号,画好了一个圈。所以没什么兴奋的。
use my eyes,我悄悄地看着我所能接触到的世界,看着它的变化;
use my eyes,我悄悄地看着我身边发生的每件事,分析它的成因;
use my eyes,我悄悄地看着我身边的所有人,从他们身上吸取有点,弥补我的不足……
use my eyes,……
昨天手机停机了,早上上班的时候发现我可以直接用招行的卡网上支付,去招行主页,user、password…..submit,over!手机立刻就可以打了,哈哈哈。以后买东西比较方便了,这让我想起dotNET的远景,什么数字化冰箱阿之类的,我看指日可待了。
另外,今儿高兴的事加薪了,现在算一年工作10个月,2个月休息,每个月可以拿到1.7k多,还不错了,敢上小仓了。呵呵~~~头儿说我要到了中高级职称,可能就是3k多了。不过我想转系,去做真正的教师,除了上课,其他时间都是自己的。而现在是coding之外才是上课,而且很少,直接问题就是课时费很少。所以呢,今年要好好复习考研,希望我所有的朋友监督我,时刻给我鞭策,希望明年顺利考上,呵呵~~
一直认为触发器很难,可今天不得不写触发器,就一个下午的时间,就完成了(从下午4点开始,到6点就完成了),最后就是调试。刚才调试通过,心里真的好happy。所以呢,从这里又可以说明——人的惰性太大了,不到迫不得以,很多东西是做不出来,也是做不好的。第一次写触发器,第一次就写了71行(包括注释),呵呵,其实每个人用心下来,而不是迫不得已,我相信都能做的很好。最后,感谢我的朋友Killed(曾经的未来或者叫刘鑫),没有他耐心的指导和解释,我是不会那么快写出来的!感谢!
create trigger ins_userandlogs on dbo.userinfo for INSERT as
/* NetFire Builtin Sta Nov 04 16:01 2004 */
/* NetFire Finished Sta Nov 04 17:50 2004 */
/* NetFire Debuged Sta Nov 04 21:20 2004 */
/* The Trigger is the first one of NetFire */
/* INSERT trigger on userinfo */
begin
declare @i int, –计数器
@mMonth int, –当前月
@RYear int, –润年标志
@mYear int, –所在年
@mDays int, –当月天数
@tDays int, –当前天
@errno int, –错误编号
@errmsg varchar(255), –错误信息
@numrows int,
@id int –用户id
/* 得到当前是月数 */
set @mMonth = month(getdate())
/* 得到当前月年份 */
set @mYear = year(getdate())
/* 得到当前天day(getdate()),减去1—为了使下面添加日至时从当月第一天开始 */
set @tDays = day(getdate())-1
/* 计算当前年是否是闰年,然后给@RYear赋值,1表示闰年,0表示非闰年 */
if (@mYear/400)*400=@mYear or ((@mYear/4)*4=@mYear and (@mYear/100)*100<>@mYear) –润年
set @RYear=1
else
set @RYear=0
/* 得到当前月的天数 */
if @mMonth=1 or @mMonth=3 or @mMonth=5 or @mMonth=7 or @mMonth=8 or @mMonth=10 or @mMonth=12
set @mDays=31
else
begin
if @mMonth=2
if @RYear=1
set @mDays=29
else
set @mDays=28
else
set @mDays=30
end
/* @@rowcount是一个全局变量,它记录上一次操作改变了多少行数据,并把值赋给@numrows */
select @numrows = @@rowcount
if
/* 测试在指定的列上进行的 INSERT 或 UPDATE 操作,不能用于 DELETE 操作。 */
update(userinfo_id)
begin
if @numrows = 1
begin
select @id = inserted.userinfo_id
from inserted
/* 给定计数器,并增加worklogs表的记录 */
set @i=0
insert into worklogs(logs_day,uid,mark) values(getdate()+@i-@tDays,@id,1)
while @i<=@mDays-1
begin
insert into worklogs(logs_day,uid) values(getdate()+@i-@tDays,@id)
set @i=@i+1
end
end
end
return
error:
raiserror @errno @errmsg
rollback transaction
end
额外的问题,刚才让9遍(一个朋友)分享我的快乐,他向我提出了几个问题,我答不上来,列在此处,了解的朋友看看,我也再仔细看看联机丛书——
- @@rowcount在trigger中不会改变值得么? 如果会,是否应该在开头就取得@@rowcount。Set @..=..会不会也改变@@rowcount ?
- trigger中的raiseerror 和rollback是否有先后顺序?
- 作为trigger来说,内部得transaction控制机制是否会对设计造成影响?你在trigger内部rollback会不会有别的隐患?对于隐式得trigger牵套会不会容易造成别的问题?