2011年11月3日 星期四

FileHelper C# 好用的Text file 讀寫 Library

http://filehelpers.sourceforge.net/
The FileHelpers are a free and easy to use .NET library to import/export data from fixed length or delimited records in files, strings or streams.

The idea is pretty simple:

You can strong type your flat file (fixed or delimited) simply describing a class that maps to each record and later read/write your file as an strong typed .NET array

The Library also has support for import/export data from differents storages like Excel, Access, SqlServer, etc.

2011年10月6日 星期四

MailDefinition 好用的 HTML template Mail body 產生器

http://martinnormark.com/generate-html-e-mail-body-in-c-using-templates

這個 .net class 可以用HTML template file 產生出 HTML 格式的 Mail message,除了拿來寄mail外,也可以拿來產生HTML 套版結果,如果要用在非ASPX的專案(如WCF),需要參考下面的文章,動點小手腳。


http://forums.silverlight.net/t/110773.aspx/1

"The owner parameter indicates which control is the parent of the MailDefinition control. It determines which directory to search for the text file specified in the BodyFileName property."
I found a solution. Using a class file (.cs) rather than an WebForm (.aspx page) I used MailDefinition successfully. The key was to create a control (System.Web.UI.Control) that referenced the .BodyFileName. So the code for this is: (where md is an instance of MailDefinition, and message is an instance of MailMessage)
 Control control = new Control();

control.AppRelativeTemplateSourceDirectory = control.ResolveUrl(md.BodyFileName);

message = md.CreateMailMessage("test@test.com", replacements, control);
Which works, but I haven't tested it on the Internet yet.

好用的WCF REST Service 測試工具: Advanced Rest Client Application

最近為了測試 WCF 寫的 REST Service ,找到了一個安裝在 google Chrome 上的 Application,發現非常好用,安裝網址:
https://chrome.google.com/webstore/detail/ahdjpgllmllekelefacdedbjnjaplfjn?hl=zh-TW

2011年8月15日 星期一

檢查WebATM Plugin是否已經安裝

Safari,Chrome : navigator.mimeTypes["application/esb-webatm-plugin"];

Firefox: navigator.mimeTypes['application/ESB-WebATM-plugin'];

http://www.javascriptkit.com/script/script2/plugindetect.shtml

2011年7月12日 星期二

說明 Microsoft Internet Information Services (IIS) 5.0 和 6.0 的狀態碼

http://support.microsoft.com/kb/318380

HTTP

1xx – 參考

這些狀態碼表示臨時的回應。 在接收一般的回應之前,用戶端應準備接收一個或多個 1xx 的回應。
  • 100 – 繼續。
  • 101 - 切換通訊協定。
2xx - 成功

此類別的狀態碼表示伺服器成功接受用戶端要求。
  • 200 - 確定。 用戶端要求成功。
  • 201 - 已建立。
  • 202 - 已接受。
  • 203 - 非授權資訊。
  • 204 - 無內容。
  • 205 - 重設內容。
  • 206 - 部分內容。
  • 207 – 多重狀態 (WebDay)。
3xx - 重新導向

用戶端瀏覽器必須採取更多動作才能完成要求。 例如,瀏覽器可能必須要求伺服器上的不同頁面,或使用 Proxy 伺服器來重複要求。
  • 301 – 已永久移動
  • 302 - 物件已移動。
  • 304 - 未修改。
  • 307 - 暫時重新導向。
4xx - 用戶端錯誤

發生錯誤,用戶端似乎出現問題。 例如,用戶端可能要求不存在的頁面,或用戶端可能未提供有效的驗證資訊。
  • 400 - 錯誤的要求。
  • 401 - 拒絕存取。 IIS 定義數個不同的 401 錯誤,以表示更詳細的錯誤原因。 這些特定的錯誤碼會顯示在瀏覽器中,但不會顯示在 IIS 記錄檔中:
    • 401.1 - 登入失敗。
    • 401.2 - 因為伺服器設定導致登入失敗。
    • 401.3 - 因為資源上的 ACL 而沒有授權。
    • 401.4 – 篩選授權失敗。
    • 401.5 – ISAPI/CGI 應用程式授權失敗。
    • 401.7 – Web 伺服器上的 URL 授權原則拒絕存取。 這是 IIS 6.0 專用的錯誤碼。
  • 403 - 禁止使用。 IIS 定義數個不同的 403 錯誤,以表示更詳細的錯誤原因:
    • 403.1 - 禁止執行存取。
    • 403.2 - 禁止讀取存取。
    • 403.3 - 禁止寫入存取。
    • 403.4 - 需要 SSL。
    • 403.5 – 需要 SSL 128。
    • 403.6 - IP 位址遭拒。
    • 403.7 - 需要用戶端憑證。
    • 403.8 - 網站存取遭拒。
    • 403.9 - 使用者過多。
    • 403.10 - 設定無效。
    • 403.11 - 密碼變更。
    • 403.12 - 對應程式拒絕存取。
    • 403.13 - 用戶端憑證已撤銷。
    • 403.14 - 目錄清單遭拒。
    • 403.15 - 超過用戶端存取授權數量。
    • 403.16 - 用戶端憑證不受信任或無效。
    • 403.17 - 用戶端憑證已經過期或尚未生效。
    • 403.18 - 無法在目前的應用程式集區中執行要求的 URL。 這是 IIS 6.0 專用的錯誤碼。
    • 403.19 - 無法在這個應用程式集區中執行用戶端的 CGI。 這是 IIS 6.0 專用的錯誤碼。
    • 403.20 - Passport 登入失敗。 這是 IIS 6.0 專用的錯誤碼。
  • 404 - 找不到。
    • 404.0 - (無) – 找不到檔案或目錄。
    • 404.1 - 無法在要求的連接埠上存取網站。
    • 404.2 – 網頁服務延伸鎖定原則阻止這個要求。
    • 404.3 - MIME 對應原則阻止這個要求。
  • 405 - 用來存取這個頁面的 HTTP 動詞不受允許 (方法不受允許)。
  • 406 - 用戶端瀏覽器不接受要求頁面的 MIME 類型。
  • 407 - 需要 Proxy 驗證。
  • 412 - 指定條件失敗。
  • 413 – 要求的實體太大。
  • 414 - 要求 URI 太長。
  • 415 – 不支援的媒體類型。
  • 416 – 無法滿足要求的範圍。
  • 417 – 執行失敗。
  • 423 – 鎖定錯誤。
5xx - 伺服器錯誤

伺服器因為發生錯誤而無法完成要求。
  • 500 - 內部伺服器錯誤。
    • 500.12 - 應用程式正忙於在 Web 伺服器上重新啟動。
    • 500.13 - Web 伺服器過於忙碌。
    • 500.15 - 不允許直接要求 Global.asa。
    • 500.16 – UNC 授權認證不正確。 這是 IIS 6.0 專用的錯誤碼。
    • 500.18 – 無法開啟 URL 授權存放區。 這是 IIS 6.0 專用的錯誤碼。
    • 500.19 - 此檔案的資料在 Metabase 中設定不當。
    • 500.100 - 內部的 ASP 錯誤。
  • 501 – 標頭值指定未實作的設定。
  • 502 - Web 伺服器在作為閘道或 Proxy 時收到無效的回應。
    • 502.1 - CGI 應用程式逾時。
    • 502.2 - CGI 應用程式中發生錯誤。
  • 503 - 服務無法使用。 這是 IIS 6.0 專用的錯誤碼。
  • 504 - 閘道逾時。
  • 505 - 不支援的 HTTP 版本。

IIS HTTP 狀態碼及其原因

  • 200 - 成功。 此狀態碼表示 IIS 已成功處理要求。
  • 206 - 部分內容。 這代表檔案已部分下載。 它可以恢復中斷的下載,或是將下載分割成多個同時執行的資料流。
  • 207 - 多重狀態 (WebDAV)。 這會出現在可以包含多個不同回應代碼 (視子要求數量而定) 的 XML 訊息之前。
  • 301 – 已永久移動。 此要求和未來所有要求應該導向至指定的 URI。
  • 302 - 找不到。 針對表單架構驗證,這通常表示為「物件已移動」。 要求的資源暫時存於不同的 URI 底下。 由於重新導向可能偶而改變,用戶端應繼續使用要求 URI 來執行未來的要求。 除非以 Cache-Control 或 Expires 標頭欄位表示,此回應才能夠快取。
  • 304 - 未修改。 用戶端要求的文件已在其快取中,並且文件自快取後尚未修改過。 用戶端使用文件的快取複本,而不是從伺服器下載。
  • 401.1 和 401.2 - 登入失敗。 嘗試登入失敗,可能是因為使用者名稱或密碼無效,或是因為系統設定有問題。 如需有關如何解決這個問題的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
    907273 疑難排解 IIS 中的 HTTP 401 錯誤
  • 401.3 - 因為資源上的 ACL 而沒有授權。 這表示 NTFS 權限有問題。 即使您對嘗試存取的檔案具有正確的權限,也可能會發生這個錯誤。 例如,如果 IUSR 帳戶無法存取 C:\Winnt\System32\Inetsrv 目錄,便會看到這個錯誤。 如需有關如何解決這個問題的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
    271071 如何為 IIS 5.0 Web 伺服器設定必要的 NTFS 權限和使用者權限
    812614 IIS 6.0 的預設權限和使用者權限
  • 403 - 禁止使用。 如果網站沒有預設的文件集,而且網站尚未設定允許「瀏覽目錄」,您便會收到這個通用的 403 狀態碼。 如需有關如何解決這個問題的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
    320051 如何在網際網路資訊服務中設定預設文件
  • 403.1 - 禁止執行存取。 下列是導致這個錯誤訊息的兩個常見原因:
    • 您沒有足夠的「執行」權限。 例如,如果您嘗試存取目錄中的 ASP 頁面,而此目錄的權限設定為 [無],或您嘗試使用「僅指令碼」權限執行目錄中的 CGI 指令碼時,便可能會收到這個錯誤訊息。 如果要修改「執行」權限,請用滑鼠右鍵按一下 Microsoft Management Console (MMC) 中的目錄,然後依序按一下 [內容][目錄] 索引標籤,確認 [執行權限] 設定適用於您嘗試要存取的內容。
    • 您嘗試執行之檔案類型的指令碼對應,並未設定成能辨識所使用的動詞 (例如,GET 或 POST)。 如果要加以確認,請用滑鼠右鍵按一下 Microsoft Management Console 中的目錄,然後依序按一下 [內容][目錄] 索引標籤和 [設定],確認適當檔案類型的指令碼對應已設為允許您所使用的動詞。
  • 403.2 - 禁止讀取存取。 確認已將 IIS 設為允許目錄的「讀取」權限。 同時,如果您使用預設的文件,請確認該文件確實存在。 如需有關如何解決這個問題的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
    247677 錯誤訊息:403.2 禁止使用:禁止讀取存取
  • 403.3 - 禁止寫入存取。 確認已將 IIS 權限和 NTFS 權限設為授予目錄的「寫入」權限。如需有關如何解決這個問題的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
    248072 錯誤訊息:403.3 禁止使用:禁止寫入存取
  • 403.4 - 需要 SSL。 停用 [需要安全通道] 選項,或使用 HTTPS 代替 HTTP 來存取頁面。
  • 403.5 – 需要 SSL 128。 停用 [需要 128 位元加密] 選項,或使用支援 128 位元加密的瀏覽器來檢視頁面。
  • 403.6 - IP 位址遭拒。 您已將伺服器設定為拒絕存取目前的 IP 位址。 如需有關如何解決這個問題的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
    248043 錯誤訊息:403.6 - 禁止使用:IP 位址遭拒
  • 403.7 - 需要用戶端憑證。 您已將伺服器設定為需要憑證才能進行用戶端驗證,但您尚未安裝有效的用戶端憑證。
    186812 PRB:錯誤訊息:403.7 禁止使用:需要用戶端憑證
  • 403.8 - 網站存取遭拒。 您用來存取伺服器的網域已設定網域名稱限制。如需有關如何解決這個問題的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
    248032 錯誤訊息:禁止使用:網站存取遭拒 403.8
  • 403.9 - 使用者過多。 連線到伺服器的使用者數目超過您所設定的連線限制。 如需有關如何變更這項限制的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
    248074 錯誤訊息:禁止存取:連線使用者過多 403.9
    注意: Microsoft Windows 2000 Professional 和 Windows XP Professional 會自動在 IIS 上設定 10 個的連線限制。 您無法變更這項限制。
  • 403.12 - 對應程式拒絕存取。 您要存取的頁面需要用戶端憑證, 但系統已拒絕與您用戶端憑證對應的使用者識別碼存取該檔案。 如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
    248075 錯誤:HTTP 403.12 - 禁止存取:對應程式拒絕存取
  • 404 - 找不到。 如果您嘗試存取的檔案已遭移動或刪除,就會出現這個錯誤。 如果在安裝 URLScan 工具後,您嘗試存取有限制檔案副檔名的檔案,也會發生這個錯誤。 當您安裝 URLScan 工具後,會在 w3svc 記錄檔中看到「Rejected by URLScan」(已遭 URLScan 拒絕)。 在這種情況下,該要求的記錄檔項目中會出現「Rejected by URLScan」(已遭 URLScan 拒絕)。 如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
    248033 系統管理員能如何在執行 IIS 的伺服器上疑難排解「HTTP 404 - 找不到檔案」錯誤訊息
    • 404.1 – 無法在要求的連接埠上存取網站。 這個錯誤代表您所嘗試存取的網站 IP 位址不接受此要求來源的連接埠要求。 如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
      248034 IIS 錯誤:404.1 找不到網站
    • 404.2 – 鎖定原則阻止這個要求。 在 IIS 6.0 中,這代表這個要求已在「網頁服務延伸」清單中設為禁止。 如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
      328419 如何在 IIS 6 中新增和移除網頁服務延伸檔案
      328505 如何列出 IIS 6.0 中的 Web 伺服器擴充功能和延伸檔案
      328360 如何啟用和停用 IIS 6.0 中的 ISAPI 擴充程式和 CGI 應用程式
    • 404.3 - MIME 對應原則阻止這個要求。 如果下列情況成立,就會發生這個問題:
      1. 要求檔案副檔名的處理常式對應尚未設定。
      2. 尚未替網站或應用程式設定適當的 MIME 類型。
  • 405 - 不允許的方法。 當用戶端將 HTTP 要求傳送到執行 IIS 的伺服器,而要求內容包含伺服器無法辨識的 HTTP 動詞,便會發生此錯誤。 如果要解決這個問題,請確認用戶端要求中使用的 HTTP 動詞適用於 HTTP RFC。 如需有關 HTTP RFC 的詳細資訊,請參閱<參考>一節。
  • 500 - 內部伺服器錯誤。 有許多伺服器端的錯誤都會顯示這個錯誤訊息。 事件檢視器記錄中可能包含有關此錯誤發生原因的詳細資訊。 此外,您可以停用易懂的 HTTP 錯誤訊息,以接收詳細的錯誤說明。 如需有關如何停用易懂的 HTTP 錯誤訊息的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
    294807 HOW TO: Disable Internet Explorer 5 'Show Friendly HTTP Error Messages' Feature on the Server Side
  • 500.12 - 應用程式正在重新啟動。 這表示您在 IIS 重新啟動應用程式的過程中,嘗試載入 ASP 頁面。 重新整理頁面後,這個訊息應該會消失。 如果您重新整理頁面後,又出現這個訊息,可能是因為防毒軟體正在掃描 Global.asa 檔案。 如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
    248013 錯誤訊息:HTTP 錯誤 500-12 應用程式正在重新啟動
  • 500-100.ASP - ASP 錯誤。 如果您嘗試載入代碼錯誤的 ASP 頁面,就會收到這個錯誤訊息。 如果要獲得更明確的錯誤詳細資訊,請停用易懂的 HTTP 錯誤訊息。 依預設,只有預設網站上啟用這個錯誤。 如需有關如何在非預設網站上查看這個錯誤的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
    261200 顯示 HTTP 500 錯誤訊息,而非來自 500-100.asp 的 ASP 錯誤訊息
  • 502 - 錯誤的閘道。 當您嘗試執行的 CGI 指令碼並未傳回一組有效的 HTTP 標頭時,就會收到這個錯誤訊息。 要解決此問題,您必須偵錯 CGI 應用程式以判斷它為何將無效的 HTTP 資訊傳送至 IIS。
  • 503 - 服務無法使用。 從 IIS 6 開始,核心模式的 Http.sys 元件會產生 HTTP 503 狀態。 如需有關如何識別並疑難排解 HTTP 503 錯誤的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
    820729 HTTP API 中的錯誤記錄功能
  • 500.19. 當您嘗試存取的內容類型在 XML Metabase 中包含無效的設定資訊,便會收到這個錯誤。 要解決此問題,請移除或修正無效的設定。 此問題通常代表 ScriptMap Metabase 索引鍵發生問題。

FTP

1xx - 正面的初步回覆

這些狀態碼表示動作已成功啟動,但用戶端在繼續執行新的命令之前,預期會收到另一個回覆。
  • 110 重新啟動標記回覆。
  • 120 服務就緒,在 nnn 分鐘後開始。
  • 125 資料連線已經開啟;正在啟動傳輸。
  • 150 檔案狀態無誤;將開啟資料連線。
2xx - 正面的完成回覆

動作已成功完成。 用戶端可以執行新的命令。
  • 200 命令無誤。
  • 202 未執行命令,此網站上的命令過多。
  • 211 系統狀態或系統說明回覆。
  • 212 目錄狀態。
  • 213 檔案狀態。
  • 214 說明訊息。
  • 215 NAME 系統類型,其中 NAME 是 Assigned Numbers 文件清單中的正式系統名稱。
  • 220 服務就緒,可供新使用者使用。
  • 221 服務關閉控制連線。 如果適當的話,請登出。
  • 225 資料連線已開啟;沒有進行中的傳輸。
  • 226 關閉資料連線。 要求的檔案動作成功 (例如,檔案傳輸或檔案中止)。
  • 227 進入被動模式 (h1,h2,h3,h4,p1,p2)。
  • 230 使用者已登入,繼續進行。
  • 250 要求的檔案動作無誤,已完成。
  • 257 PATHNAME 已建立。
3xx - 正面的中繼回覆

命令已成功,但伺服器需要來自用戶端的詳細資訊,才能將要求處理完畢。
  • 331 使用者名稱無誤,需要密碼。
  • 332 需要登入帳戶。
  • 350 要求的檔案動作擱置中,以等待進一步的資訊。
4xx - 暫時性的負面完成回覆

命令沒有成功,但錯誤是暫時的。 如果用戶端重試命令,可能會成功。
  • 421 服務無法使用,正在關閉控制連線。 如果服務知道它必須關閉,便會向任何命令發送這個回覆。
  • 425 無法開啟資料連線。
  • 426 連線已關閉;傳輸已中止。
  • 450 未執行要求的檔案動作。 檔案無法使用 (例如,檔案忙碌中)。
  • 451 要求的動作已中止: 正在處理本機錯誤。
  • 452 未執行要求的動作。 系統中的儲存空間不足。
5xx - 永久的負面完成回覆

命令沒有成功,且錯誤是永久性的。 如果用戶端重試命令,會收到相同的錯誤。
  • 500 語法錯誤,無法辨識命令。 這可能包括命令列太長等錯誤。
  • 501 參數或引數中的語法錯誤。
  • 502 未執行命令。
  • 503 錯誤的命令順序。
  • 504 未執行該參數的命令。
  • 530 未登入。
  • 532 需要帳戶才能儲存檔案。
  • 550 未執行要求的動作。 檔案無法使用 (例如,找不到檔案、沒有存取權)。
  • 551 要求的動作已中止: 頁面類型不明。
  • 552 要求的檔案動作已中止。 超過 (目前的目錄或資料集) 的儲存配置。
  • 553 未執行要求的動作。 檔案名稱不受允許。

常見 FTP 狀態碼及其原因

  • 150 - FTP 使用兩個連接埠: 使用 21 傳送命令,使用 20 傳送資料。 狀態碼 150 表示伺服器將在連接埠 20 開啟新的連線,以便傳送某些資料。
  • 226 - 命令在連接埠 20 開啟資料連線,以便執行傳送檔案之類的動作。 此動作成功完成,並且已關閉資料連線。
  • 230 - 用戶端傳送正確的密碼後,便會出現這個狀態碼。 這表示使用者已成功登入。
  • 331 - 用戶端傳送使用者名稱後,便會看到這個狀態碼。 不論所提供的使用者名稱是否為系統上的有效帳戶,都會出現相同的狀態碼。
  • 426 - 命令開啟資料連線以便執行動作,但該動作已取消,而且資料連線已關閉。
  • 530 - 此狀態碼表示使用者無法登入,因為使用者名稱和密碼的組合無效。 如果您以使用者帳戶登入,您輸入的使用者名稱或密碼可能有錯,或已選擇僅允許匿名存取。 如果您以「匿名」帳戶登入,可能已將 IIS 設為拒絕「匿名」存取。
  • 550 - 未執行命令,因為無法使用指定的檔案。 例如,當您嘗試使用 GET 取得不存在的檔案、或使用 PUT 將檔案放置在您沒有「寫入」權限的目錄中,便會出現這個狀態碼。