2011年11月30日 星期三

[NET].免費限速軟體 NEGiES 1.57(中文繁體)

(日文)官方網站: http://hp.vector.co.jp/authors/VA036210/download1.html
軟體下載: http://www.mediafire.com/?oiogmziy5n2

通常 browser 都沒有限速的功能, 由於現在要寫檔案上傳的功能, 需要做測試, 區網(或本機) 的傳輸速度太快, 會看不到進度bar(progress bar). 所以必需使用限速軟體.


(中文版)設定的範例:



(日文版)設定的範例:


相關文章1: http://save-coco.blogspot.com/2009/01/negies-157_6710.html

相關文章2: http://freesoft.tw/?p=1471

2011年11月29日 星期二

[HTML].flash 上傳元件的限制

前言:
最近在開發一個 HTML 上傳檔案的 form, 類似 gmail 的界面, 可以在同一個畫面裡, 透過 flash 上傳多筆的附件檔案.

這次的遇到的問題是, 我在畫面中使用了2個 swfupload 物件, 一個要上傳附件, 一個要上傳多媒體檔案, 上傳多媒體檔案時, 無法讓檔案上傳, 可是上傳附件的部份都ok.


* 附註:上傳多媒體檔案的方式是透過 jQuery 的 blockUI plugin 彈出一個 dialog:

說明: 這個彈出的方式, 比較特別, 是先選取檔案, 等使用者按下 "上傳"按鈕, 才開始上傳資料.


debug swfupload 的 message 如下:




假設, 是因為放了2個 swfupload object 造成的沖衝. 我的除錯流程如下:
挑戰解法 1, 增加一個新的區塊, 把這種"確定後才開始上傳" 的範例用的程式都放到新的區塊. 測試結果, 是ok的. 測試的範例, 可以2段式的, 按下確定後, 才開始上傳.

挑戰解法 2. 移掉 附件在用的 swfupload object, 讓畫面只剩下 上傳多媒體用的 swfupload object, 結果,還是不能 work.

所以, 這一個假設, 應該不成立, 於是比較看看目前的顯示方式, 與"確定後才開始上傳" 的範例的差異, 假設要存取 user client 端的資料時, swfupload 必需是 visible(也許看的到), 結果可行, 似乎是安全性造成的.

結果: flash 上傳元件的限制, 就是 user 要開始上傳 client 端資料時的一瞬間, swfupload object 需要要顯示在畫面裡可能被看的見的區塊裡, 用 "一瞬間" 的意思指, 原本隱藏的區塊, 在 "選取" 檔案時, 和 "開始上傳時" 這2個時間點, 都顯示在畫面上, 是可以上傳成功的.


* 附註: 當 user 選好 client 端的檔案後, "可能" 不能對這一個 flash object 做搬移區塊的動作. 搬了的話會造成 flash UI 的重新整理, 也會造成無法上傳檔案. 會用 "可能", 是指我的手法可能太遜, 搬失敗, 可能有其他的方法, 可以正常地去搬移 flash object 的位置, 而且還可以正常的上傳, 這個部份先跳過...



相關文章:
swfupload Document:
http://demo.swfupload.org/Documentation/#startUpload

swfupload project:
http://code.google.com/p/swfupload/

後記: 原來是 blockUI 裡的 bindEvents, 把事件吃掉..., 我最後的解法是 bindEvents: false, 然後再把 flash 放在一個奇怪的 position:absolute;z-index:9999; left:-100px; top:-50px; 的 layer 裡, 應該可以有更好的解法 XD

2011年11月24日 星期四

JQuery 背景變暗dialog example

新版本的 jQuery 有提供 .dialog(),參考看看.
http://jqueryui.com/demos/dialog/
or
http://docs.jquery.com/UI/API/1.7.2/Dialog
or
http://hi.baidu.com/li_mingzhu/blog/item/1279308d319a0ea60e2444fd.html

另一個不錯的解決方案是使用 blockUI:
http://www.malsup.com/jquery/block/
or
http://jsgears.com/thread-72-1-2.html

blockUI 用起來真的很方便,參數:
showOverlay: false , 就是指,modalless, 背景不會被 lock 住.
showOverlay: true , 就是指,modal, 背景會 lock 住.


google keyword: jquery blockUI, 這個似乎比較好用.

主機移機(或重灌)的check list

公司的主機進行重灌工程, 我有幾個項目沒有做到, 造成... 多花了一些時間進行重新設定, 所以, 把這次裝機的 check list 出來, 希望日後會有幫助:

 ● 重灌前要備份的項目
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 1. Database 備份.
 2. Database 維護計畫 備份..
 3. IIS site + IIS application pool 的 XML file 匯出.
 4. IIS site 的 SSL 憑證匯出.
 5. hosts 檔案備份.
 6. ipsec 的原則匯出.
 7. 防火牆的例外規則.
 8. 排程 \windows\tasks\ 項目備份.
 9. 程式+附件.
 10. 檢查看看, 有沒有一些舊網站在用的外部 app 需要備份.(例如: 自行開發的浮水印app, 或 single site on 之類的 web service)


 ● 重灌後的工作項目
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 1. 建新低權限的 匿名存取用的帳號(IUSER).
 2. 先安裝元件, 並允許新建的 IUSER 有 create owner 權限.
 3. 還原 程式+附件, 並設定 IUSER 有讀取權限, 部份上傳用的資料夾, 有寫入權限.
 4. 還原 Database + 維護計畫.
 5. 匯入 IIS site XML file + IIS application pool.
 6. 匯入 SSL 憑證.
 7. 還原(或修改) host.
 8. 設定防火牆例外規則 + ipsec 原則.
 9. 排程的 job 檔還原回去 \windows\tasks\ , 如果有修改帳號/密碼的話, 記得要重設jobs裡的帳/密.
 10. 還原舊網站在用的外部 app 需要備份.(例如: 自行開發的浮水印app, 或 single site on 之類的 web service)


附註: 上面應該是比較簡單(典型)的主機的備份/還原的流程, 每個案子可能會有些額外的客製化的流程, 例如: SQL Server 的全文檢索的設定, 或 Asp.Net framework 4.0的安裝, 還是 php 或 java 的安裝...etc.

2011年11月23日 星期三

IIS 只能執行"靜態網頁"時的設定方法

系統重灌後, 又卡關了, 這次遇到的是 靜態網頁(.html 或 .xml) 可以執行, 動態網頁(.asp or .aspx) 無法執行, 會傳回 404 - file not found.



google 了 keyword: IIS 6.0 asp 無法執行 html 可以
厲害的 google, 傳了很多資料回來, 研究了幾篇之後, 發現應該是 "網頁服務延伸" 的問題, 果然, 在 IIS 裡, 網頁服務延伸 是空空的, 什麼也沒有.


google 改下 keyword: 網頁服務延伸 asp,
又看了幾篇文章, 挑戰使用 aspnet_regiis –i 指令, 進行重新安裝, 並重新啟動 www service, 結果, 無效.

挑戰自行新增 "網頁服務延伸":



輸入 Asp, 並選取 asp.dll

結果, 新增失敗, 他說該 dll 已被 active server pages 所使用,


挑戰, 使用 aspnet_regiis –ga 試試看, 也無效,
挑戰, aspnet_regiis –c 試試看, 也無效,
最後, 再使用 aspnet_regiis –i 試試看, 結果, 回來重新整理 "網頁服務延伸" 的目錄, 有效, 而且神奇的是他預設就幫 Asp 設成 "已允許"...



資料來源: ASP.NET 4.0 安裝在 IIS6 最常遇到的四個問題
http://blog.miniasp.com/post/2010/06/22/IIS-6-ASPNET-4-Installation-Notes.aspx#continue

附註: 理論上 IIS 的匿名使用者, 用 IUSER 應該就很安全了, 萬一如果您想要自定使用者的話, 請請記得把這個 User 做以下的設定:
1. user 的群組, 請移掉 User group, 加入 guests group.
2. 不允許 遠端登入.
3. 不允許 登入伺服器.

參考 URL: http://maxtellyou.blogspot.com/2011/12/iis-iuser.html

IIS 設定Application Pool 和 新使用者的標準作業流程(SOP)

開Asp網頁的IIS主機重灌, 其實重灌前, 我就有發現 c:\windows\temp\ 的資料夾裡, 被放了奇怪跳板程式, 8成是這台主機的權限之前沒設好, 所以這次用比較高的安全性的設定方式來設定 IIS, 結果一設下去, 就出現:
Service Unavailable 的錯誤.

連直接執行 html file, 都出現 Service Unavailable 的錯誤訊息, 錯誤發生的原因是, 修改 IIS 中應用程式集區(Application Pool)的身份識別, 如果設回去使用 網路服務(NETWORK SERVICE), 網頁就又可以正常執行, 但會彈出安全性的登入框, 因為 test.html 檔案, 網路服務(NETWORK SERVICE)帳號目前沒有存取的權限.


修改 Application Pool 的步驟是,
1.先在系統中新增一位新的使用者 (假設叫做 webUser )
2.修改 IIS 中應用程式集的身份識別設定 (如下圖)





如果在事件檢視器中查詢錯誤紀錄,你就會發現是 Application Pool 發生錯誤, 造成 Service Unavailable.



下就是正確設定的標準作業流程(SOP):
1.新增使用者
2.將該使用者加入 IIS_WPG 群組
3.修改系統暫存目錄 ( C:\WINDOWS\Temp ) 權限, 為特殊權限, 只需要和 NETWORK SERVICE 的設定值一樣,只要有「列出資料夾/讀取資料」與「刪除」兩種權限就可以正常運行 ASP.NET 了。


檢視/設定使用者詳細權限(進階安全性設定)的方法如下:
1.按右鍵, 設定安全性.
2.按 "進階" 按鈕.
3.選 webUser(新增的使用者).
4.按 "編輯" 按鈕.



資料來源: IIS應用程式集區自訂身份識別後如何讓 ASP.NET 正常執行
http://blog.miniasp.com/post/2008/12/ASPNET-and-Application-Pool-Identity-setting-in-IIS-60.aspx

保哥說:
我們都知道 ASP.NET 在 IIS 6.0 中運行的時候,真正的執行權限使用者是應用程式集區(Application Pool)的身份識別(Identity)頁籤中定義的那位使用者,預設的使用者是「網路服務(NETWORK SERVICE)」,而且實際在執行的程序名稱(Process Name)為 w3wp.exe,各位可以從工作管理員中看到。

我們先設定一種情境,如果一台 IIS 中有兩個 ASP.NET 網站,分別由不同的開發團隊或客戶所管理,而兩個網站都有設定檔案上傳的功能,因此兩個網站一定會有特定目錄需要賦予 ASP.NET 可寫入權限,因為在 IIS 中 ASP.NET 的預設權限使用者就等於應用程式集區中定義的身份識別使用者,也就是所謂的 NETWORK SERVICE 系統使用者。

如果當其中第一個網站被入侵或值入後門程式時,也代表著這些後門程式正以 NETWORK SERVICE 的身份在你的主機中肆虐,攻擊的對象即便僅限於「網站」,但當然也包括第二個網站的部分可寫入路徑。

若要增強網站間的安全性與隔離性,我們這時就會需要修改應用程式集區(Application Pool)的身份識別設定,讓兩個 ASP.NET 網站個別使用不同的身份識別來執行所有的程式。


* 附註: IUSER 請使用 guests group 而不是 user group, 以避免權限的問題.

[SQL].資料庫主體在資料庫中擁有 結構描述 且無法卸除。

情況: 有一台主機重灌, 所以備份了 sql server 的 db, 重灌之後, 用 restore 貼回 database, 但原本 db 裡的 userid 不能登入, 也刪不掉, 用指令來刪, 會出現下面的錯誤:
DROP USER [myAccount]



後來, 再多建立一個 dbo 的帳號後, 就可以把舊的, 不能刪除的帳號刪掉, 似乎一個 database , 最少要有一個 dbo 帳號的樣子.

Facebook 留言板