服务器存储空间不足,无法处理此命令

一台Windows 2003服务器通过文件共享方式访问此台服务器连接的光纤阵列,总是提示“服务器存储空间不足,无法处理此命令 (Not enough server storage is available to process this command)”,原来曾经遇到相同的错误提示,原因是安装了某些Windows更新之后服务器没有重启,如发炮制之后问题依旧,查日志发现有错误记录“事件ID 2011,服务器的配置参数“irps4tacksize”太小,无法让服务器使用本地设备。请增加此参数的值。”。

根据M$知识库http://support.microsoft.com/?kbid=177078的指引,创建键值HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\IRPstackSize,类型为DWORD,取值设置为0x32,重启之后问题解决。

两件事

1、通过我的网站访问日志发现学妹janeting的BLOG,感谢她将我的小站作为友情链接,俺也不能吝啬不是,特增加“平淡即是幸福

2、给tmssoftware的BUG REPORT尚未有回复,但是我已经按耐不住,于是借助Reflector的帮助,将有问题的CeAppointments类重写成MyCeAppointments,由于原作者将一些主要的函数都声明为internal,导致我只好用了一些取巧的方法,解决了NOTES字段写入时,中文变为问号的BUG。

至此我的日程系统与PDA/SmartPhone的同步小玩意基本完成,因为程序的专用性,就不放出来,以下只给出MyCeAppointments类的源程序供大家参考,我的修改位于a(ushort A_0, string A_1)和Open()两个方法中,没有注释别怪我,:)

下载MyCeAppointments.cs

BUG REPORT

升级完PDA之后,就开始研究怎么将公司的日程系统上的数据同步到PDA的日历中去,Microsoft Pocket PC 2003 SDK看得我有点晕,无意中在网上发现了TMS CETools for .NET,这个tmssoftware做控件确实很棒,CETools只是凤毛麟角,不过着实好用。

程序基本是完成了,后台用WebService做鉴权和数据传送,前台用C# + CETools直接写PDA对应的数据库,但是最后发现这个控件在处理含有中文的备注字段时有问题,用Reflector发现原来是使用了Encoding.ASCII.GetBytes造成的,直接导致中文变问号,于是用N年未用过的英文给tmssoftware写了一封BUG REPORT email,建议他们改用Encoding.Default.GetBytes,这样全世界的人民都皆大欢喜了。希望他们会理会我的邮件 EM213.gif

iPAQ 3850 PPC2002升级PPC 2003

手头上有个N久没有用过的iPAQ 3850,最近拿到一张EDGE卡,于是便翻出来继续玩玩。上网溜达,发现有人将利用iPAQ 3870的ROM将原有的操作系统PPC2002升级到了PPC2003英文版(现在依然没有适合iPAQ 38xx的中文版PPC2003),于是也想试一试。历时N个小时,在网上找个N个版本,都是升级了之后无论软启还是硬启,机器都无法启动,最后还是在eMule上找到了一个可用的版本,升级过程如下:

1、关闭Microsoft ActiveSync:在任务管理器中,中止wcescomm.exe进程;
2、由于直接升级ROM会导致Asset Tag和Serial丢失,所以需要修改一下固件文件nk.nb0,利用UltraEdit打开文件,在01ff000ah-01ff0020h和01ff0e00h-01ff0e16h地址段都填上机器的S/N,这个序号可以在机器背面的铭牌上找到,序号中每个字符中间要间隔一个ASCII值为0的字符,例如"4G23DWABCDEF"要输入为"4.G.2.3.D.W.A.B.C.D.E.F" ,"."代表ASCII值为0的字符,图例见后面贴图,序号后6位抹掉了
3、修改后保存文件
4、同时按住PDA的2+4+Power+Reset键,直至屏幕上出现“Remote USB Update”(这个界面如果要退出,直接Reset即可)
5、用USB数据线连接电脑和PDA
6、运行升级程序host11.exe,如果出错检查1、5步骤,还有就是升级文件是否和host11.exe放到了同一目录下,并且名称是nk.nb0
7、完成后host11.exe提示“Flash Done!”,PDA上出现“Please Disconnect Battery”后,硬启PDA:同时按住1+4+Power+Reset,之后再软启:按Reset即可
8、升级后PDA右下方有蓝牙标志(3870的升级包的后果),但不影响其他使用
9、英文版本输入中文的问题,安装CE-Star解决



其他提示:
1、某些网站下载的ROM(特别是官方升级包解压出来的ROM文件)用host11.exe升级最后快到100%的时候,会提示USB Connection Lost,这个一般是ROM文件最开头有类似“iPAQ 3800-CHS-1.20-1705---------”的文本,删除头32个字节的内容就可以用host11.exe升级了
2、升级ROM之后硬启、软启PDA都没有响应,一般都是ROM不匹配或者有问题,只要按住PDA的2+4+Power+Reset键,屏幕上能出现“Remote USB Update”就可以使用老版本的ROM恢复


相关下载:
3850 PPC 2003英文版ROM(其实是3870的ROM,升级前记得写入自己PDA的S/N)
3850 PPC 2002中文版ROM(官方最新的1.20版本)

XDM for X-Win32

想利用X-Win32管理一台Slackware的Linux服务器,按照网上经典文章在Linux做了以下配置:
1、修改/etc/X11/xdm/xdm-config,使用!注释:DisplayManager.requestPort: 0
2、修改/etc/X11/xdm/Xaccess,删除第一个#,去掉注释:#* # any host can get a login window
3、修改/etc/X11/xdm/Xservers,使用#注释::0 local /usr/X11R6/bin/X

但运行xdm -debug 1,检查运行情况,结果发现出错:
XDMCP socket creation failed, errno 97

解决方法,在/etc/X11/xdm/Xaccess增加一行:
LISTEN 0.0.0.0

运行xdm启动服务成功,默认使用UDP 177端口。

水晶报表无法安装II

还是上次提到的那个问题:一台Windows 2003 Enterprise Server,安装水晶报表10(Crystal Reports 10)时,在输入产品序列号界面无论如何输入,点击“下一步”都无响应,也没有任何消息提示框弹出(正常情况下输入错误应该是有提示的),导致无法安装。

当时采用命令行方式“msiexec /i CrystalReports10_NET_EmbeddedInstall.msi /q PIDKEY=产品序列号”安装成功,今天了解到了彻底的解决方法,删除注册表键值
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole\DefaultAccessPermission,重新运行安装程序即可,据说该解决方案来自M$。

水晶报表无法安装

一台Windows 2003 Enterprise Server,安装水晶报表10(Crystal Reports 10)时,在输入产品序列号界面无论如何输入,点击“下一步”都无响应,也没有任何消息提示框弹出(正常情况下输入错误应该是有提示的),导致无法安装。

先尝试使用命令行安装,运行“msiexec /i CrystalReports10_NET_EmbeddedInstall.msi /q”,采用安静模式安装,发现安装成功,但是使用时提示“因为未能在分配的时间内获得免费许可证,所以Crystal Reports作业失败。可以直接从Crystal Decisions或通过Crystal Decisions在线商店购买更多的许可证。

寻觅N久之后,找到解决方法,先卸载水晶报表,重新运行“msiexec /i CrystalReports10_NET_EmbeddedInstall.msi /q PIDKEY=产品序列号”安装,成功搞定。


---以下【2005-09-16】添加---
今天了解到了彻底的解决方法,删除注册表键值
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole\DefaultAccessPermission,重新运行安装程序即可,据说该解决方案来自M$。

SQL Server 2000全文索引无法填充

一台SQL Server 2000服务器,已经启动了Microsoft Search服务,且可以正常的添加全文索引类别和表,确认也已经在数据库上设置了允许全文索引:
select fulltextserviceproperty ('IsFullTextInstalled')
select databaseproperty('edms','isfulltextenabled')


创建全文索引的语句似乎也找不到什么错误: EM74.gif
exec sp_fulltext_database 'enable'
exec sp_fulltext_catalog 'StationAddress', 'create', 'N:\db_files\EDMS'
exec sp_fulltext_table 'tcStation', 'create', 'StationAddress', 'PK_TCSTATION'
exec sp_fulltext_column 'tcStation', 'Address', 'add'
exec sp_fulltext_table 'tcStation','activate'
exec sp_fulltext_catalog 'StationAddress', 'start_full'


但是在企业管理器中选择填充全文索引,提示成功之后,却无法搜索到任何数据:
select * from tcStation where contains(*, '天河')


检查发现对应全文索引分类StationAddress的“项目计数”始终为0,“唯一键计数”之中为1,显然是无数据填充成功;没头绪几天之后才想到看看系统日志,结果发现以下记录 EM79.gif
无法访问项目 <SQLServer SQL0001200005> 中的爬网起点 <MSSQL75://SQLServer/3da903ec>。错误: 800700e9 - 管道的另一端上无任何进程。
由于没有可访问的爬网起点,无法开始对项目 <SQLServer SQL0001200005> 的爬网操作。请解决此错误并重试。


最终发现解决方法 EM107.gif ,在SQL Server登陆中添加本地管理员组BUILTIN\Administrators可登陆,且服务器角色为“System Administrators”,数据库访问拥有对应数据库的所有者权限。
再次填充全文索引,问题解决,可以睡觉老~~~ EM23.gif

小节:该问题可能是由于数据库是采用集群方式安装,默认没有添加该用户组访问权限所致,检查单机安装的都是有的;或者是该帐号被人删除也难说。但是整个过程最郁闷的事情就是操作分明失败,但提示确实成功,虽然M$你老人家设计的是后台异步做填充,但也不要回答得这么干脆呀~~ EM34.gif