有點懶散的潛水日誌,希望在這分享海洋的驚奇

Monthly archives for 十月, 2010

windbg aspnet_wp(1)

windbg aspnet_wp(1)

今天研究了一下用 windbg 來 trace aspnet_wp crash 的狀況 沒想到離開 NB ODM 之後還會用到這個 debug tool 因為整個過程真是有點複雜所以也順便紀錄一下 首先要先去下載微軟的windbg tool 他裡面有一個可以dump的小工具ADPlus C:Program FilesDebugging Tools for Windows (x86)ADPlus.exe 直接打 adplus 就會有操作說明 我是在系統 hang 時 dump 出 aspnet_wp 這個程序的 dump file adplus -hang -pn aspnet_wp.exe -o D:dump 再來先開啟 Windbg 並載入 dump file 這時候可能會出現跟我一樣的警告 找不到 Symbol file     請在 FileSymbol File […]

windbg Failed to load data access DLL...

windbg Failed to load data access DLL, 0x80004005

今天在用windbg的時候遇到一個問題 load完dll檔之後要下指令給他跑時出現這樣的錯誤訊息 仔細看一下發現原因出在load進來的dll版本 我的版本是4927而Server的版本是3615 這時直接把Server上的檔案copy回來在安全模式下覆蓋就可以了   PS:記得要先備份原始檔否則以後有要在本機上跑時會有問題   CLRDLL: C:WINDOWSMicrosoft.NETFrameworkv2.0.50727mscordacwks.dll:2.0.50727.4927 f:0doesn’t match desired version 2.0.50727.3615 f:0SYMSRV:  D:sos.dllmscordacwks_x86_x86_2.0.50727.3615.dll4BE902C7590000mscordacwks_x86_x86_2.0.50727.3615.dll not foundSYMSRV:  http://msdl.microsoft.com/download/symbols/mscordacwks_x86_x86_2.0.50727.3615.dll/4BE902C7590000/mscordacwks_x86_x86_2.0.50727.3615.dll not foundSYMSRV:  C:Program FilesDebugging Tools for Windows (x86)symmscordacwks_x86_x86_2.0.50727.3615.dll4BE902C7590000mscordacwks_x86_x86_2.0.50727.3615.dll not foundSYMSRV:  http://msdl.microsoft.com/download/symbols/mscordacwks_x86_x86_2.0.50727.3615.dll/4BE902C7590000/mscordacwks_x86_x86_2.0.50727.3615.dll not foundCLRDLL: Unable to find mscordacwks_x86_x86_2.0.50727.3615.dll by mscorwks searchCLRDLL: Unable to find ‘mscordacwks_x86_x86_2.0.50727.3615.dll’ on the pathSYMSRV:  Can’t create D:sos.dllmscorwks.dll4BE902C7590000mscorwks.dll         系統找不到指定的檔案。DBGHELP: C:Program FilesDebugging Tools for […]

C# 中對於字串全形 半形 的判斷

C# 中對於字串全形 半形 的判斷

今天遇到一個問題事關於字串長度的判斷 如果我們使用 字串.Length 來抓取長度的話 他會把全形的中文字也算成1個字元 這樣如果遇到中英混和的情況就很難搞了 這時可以利用System.Text.Encoding.Default.GetBytes() 的方法來抓取編碼Byte數 一般英數為ASCII code = 1 Byte 中文字型為Unicode = 2 Bytes 這樣就能準確的算出字串長度   範例如下 string a = “我有3隻小毛驢"; System.Text.Encoding.Default.GetBytes(a).Length   長度 = 6*2 + 1 = 13

grideview 列高的設定

grideview 列高的設定

改程式的時候遇到一個問題 預設好的gridview如果整列裡面都沒放東西高度會動態縮小 就算是塞空格進去也沒有用也就是以下這個情形     這時只要去預設列高就可以了 只要在其中一列設定其他列就都會影響到 我是直接修改我grideview的第一個元素 <asp:HyperLinkField DataTextField="Column0″  Target="_self"                 ShowHeader="False" NavigateUrl="~/LotteryChNumber.aspx" ItemStyle-Height="20″ > 修改後如下

清除並釋放MSSQL log檔

清除並釋放MSSQL log檔

MSSQL的log檔如果沒有定期清除並釋放的話 不但log檔本身會長得很肥大 萬一需要trace時也會因為檔案太大而效率不佳最近因為某些原因要trace公司資料庫的log檔 沒想到檔案已經長到超過50G了 根本連解都解不出來 分享一下清除log檔並且釋放空間的語法   Backup Log DB_Name with TRUNCATE_ONLY                    //不指定備份裝置所以清空 dbcc shrinkfile (DB_Name_log , truncateonly)                      //沒有用的空間釋放出來,truncateonly可以改成要留下的log檔大小(MB)   有空再來研究如何定期去清…

安裝ASP.NET

安裝ASP.NET

先確認已經安裝IIS 如果是2003 SP2的版本則已經包含. NET Framework2.0 了 接下來註冊到IIS就可以了 cd cd “C:WINDOWSMicrosoft.NETFrameworkv2.0.50727″ aspnet_regiis -i  

Windows 2003 server 防火牆問題

Windows 2003 server 防火牆問題

今天差點被擊沉了 想架設一個 2003 server 的環境來debug沒想到這麼麻煩裝好IIS之後機器可以連上外網 但是跟區網內的其他機器卻沒辦法互ping 懷疑是跟防火牆有關 但是打開防火祥出現 “由於另一個程序或正在運行的服務可能正在使用網絡地址轉換組件(ipnat.sys)" 的警告 胡搞了一陣子又上網找了一下 原來這是因為 routing service 被打開 關掉就有解了   先到電腦管理下把"路由及遠端存取"關掉   再去服務裡面把ICS打開(靠….圖超胡但是我懶得重抓了)   之後就能開啟防火牆了…然後就ping的到了…