顯示具有 debug 標籤的文章。 顯示所有文章
顯示具有 debug 標籤的文章。 顯示所有文章

2011年7月29日 星期五

新增Com+應用程式的2個方法

有一個同事前幾天去客戶家裝機, 要挑戰在 x64 環境下執行 32位元的 tabs 2.1版, 有一個元件一直裝不起來,
我與同事透過電話檢查了:
(1) 實體檔案的安全性,
(2) 應用程式集區(Application Pool) 的使用者帳號,
(3) 元件的Create User.
也都沒有問題, 結果還是有錯誤訊號如下:



由於無法完成裝機, 所以要擇日再跑一次, 現在要找出問題在那裡, 為了在公司裡模擬客戶家裝機的錯誤訊息, 就把公司測試機上元件先在Windows Server主機上移除, 然後, 請同事來裝一次看看, 用來找出被勿略的步驟及重現錯誤訊息.

發現他加入元件的方式跟我不一樣, 我用的是直接把元件透過檔案總管拉到Com+ 裡, 他用的是下面這個方法:


雖然方法不同, 結論是相同的, 還是一樣的錯誤訊息. 最後問題還是被解決了, 透過取消勾選下面這一個勾勾.

2011年7月5日 星期二

動態產生的select box 裡的 item 在回一頁時會跑掉

user 反應, 他的訂單資料有錯.

經反複的測試, 終於找到錯誤的原因, 這個bug 是必需輸入過錯誤的資料, 才測試的出來, 發生的因為 user 曾輸入過錯誤的資料, 造成回上一頁時, 動態產生的 select box 裡的 item 會固定變成第1個項目.


┏┓
┗■━━━━━━━━━━━━━━━━━━━━━━━
 ┃ 執行畫面 (Screens)
 ┗━━━━━━━━━━━━━━━━━━━━━━━
 ■ 1. 在下拉框(select box)輸入正確的資料, 松山區.



 ■ 2. 固定輸入錯誤的資料.



 ■ 3. 畫面一回來, 就會看到 動態產生的下拉框裡固定被帶入第1個項目, 而不是正確的 "松山區".




┏┓
┗■━━━━━━━━━━━━━━━━━━━━━━━
 ┃ 解決方式 (Solution)
 ┗━━━━━━━━━━━━━━━━━━━━━━━
 ■ 增加一個隱藏的欄位, 用來存放送出之前的內容值. 並在回一頁時, 把該值填入動態產生的下拉框之中.

 ※ 附註: 這個隱藏欄位的用法, 建議不要使用 input 的 hidden 欄位來做, 經測試 google chrome 很神奇的會抓不到該 hidden 欄位的值, 即使你在 submit 按鈕按下去之後有給他值. 建議使用 type='text' style='display:none;'

 ※ 附註: 由於 google chrome 和 firefox 都太聰明了, 會 cache 住前一頁的 image, 會造成回上一頁時, 驗證碼會是舊的, 所以要在回上一頁之後, 執行一次 reset 驗證碼的動作.

2011年7月1日 星期五

MSSQL 不支援此種介面 (No such interface supported)

下面要分享的是解決問題的過程和方法.

今天發生客戶的主機, 無法進行全文檢索的指令, 在執行SQL 指令後, 會發生
"不支援此種介面" (No such interface supported) 的錯誤.




這個問題, 似乎在2年前我有處理過, 由於都沒有留下文件, 而且年代久遠已經完全忘記發生過什麼事情及如何解決, 所以重新再處理一次.

■ step 1: 先用中文字 google 看看, 發現都沒有相關的文章.

■ step 2: 改用英文字 google 看看, 看了很多篇, 似乎也無解.

■ step 3: 縮小 google seareh 的範圍, 加入 /site:microsoft.com , 似乎也無解.

■ step 4: google 無效, 改成比較正式機與測試機間的差異. 開始提出可能的假設.

■ step 4.1: 由於客戶給的Database 主機是給一般的 user 帳號, 所以很多指令無法執行, 先假設是權限造成. 請客戶用管理員帳號, 重建一次全文目錄, 結果還是一樣, 會出錯, 所以排除是權限因素.

■ step 4.2: 測試看看, 使用不同語言的詞庫來斷詞, 看看是否能成功. 結果可以, 但由於詞庫不合, 用英文來斷中文字, 會查不出資料. 可以確定原因之一是: 是中文繁體斷詞出錯.

■ step 4.3: 檢查測試機與正式機上面斷詞的相關參數, 發現 classid 不一致.

v12.0 版就是使用 SQL server 2005 的斷詞 classid 應該是:
954F1760-C1BC-11D0-9692-00A0C908146E

v2.0 就是不斷詞 classid 應該是:
1680E7C3-9430-4A51-9B82-1E7E7AEE5258


■ step 5: 請客戶設定 class id 後, 重啟 SQL Server 服務, 就大功告成, 正常運作了.

Facebook 留言板