2016年4月28日 星期四

HTTP錯誤500.21-Internal Server Error


執行ASP.NET應用程式出現「HTTP錯誤500.21-Internal Server Error,處理常式 "PageHandlerFactory-Integrated" 的模組清單中有錯誤的模組 "ManagedPipelineHandler



會發生此狀況的原因為:
一、先安裝.NET FrameWork 4.0以上的獨立安裝程式,才啟用IIS角色,可能就會遇到。
Q:我沒裝什麼.net framework的獨立安裝程式啊..?
A:可能是在安裝其他應用程式時,順便幫你安裝了。
二、.NET Framework 4.0 與ASP.NET 有關的設定損壞走鐘了。

解決方案:
底下這篇是MSDN的說明,適用在VS2012安裝較VS2010或SQL SERVER2008早的情況
Troubleshooting: HTTP Error 500 (or 500.21) - Internal Server Error Handler


底下這篇可能適用於某些環境
執行ASP.NET應用程式時,發生【HTTP錯誤500.21-Internal Server Error,處理常式 "PageHandlerFactory-Integrated" 的模組清單中有錯誤的模組 "ManagedPipelineHandler"】錯誤的故障排除


雖然MSDN的說明,是Visual Studio2012比較早安裝;但是長期使用微軟開發工具早已養成要按照發行版本的先後順序進行安裝的習慣,我的安裝順序是VS2010 -> VS2013 -> VS2015,會遇到這個錯誤的原因是開始coding後才想到要啟用IIS角色....
實際的解決方式是:

1. 進入命令列模式(執行cmd)
2. 切換至  %systemroot%\Microsoft.NET\Framework64\v4.0.30319\SetupCache\v4.6.01055 資料夾並執行setup.exe啟動.NET Framework修復:
cd\Windows\Microsoft.NET\Framework64\v4.0.30319\SetupCache\V4.6.0155
setup.exe /repair /x86 /x64 /ia64 /norestart
3. 啟動.NET Framework4.6.1安裝程式後選擇「將.NET Framework4.6.1修復成原始狀態」
4. 修復後依指示重新開機。
5. IIS重新啟動。

2016年4月21日 星期四

SQL Server無法附加資料庫? Microsoft SQL Server, 錯誤: 5120


SQL Server附加資料庫時出現存取被拒的錯誤訊息 (Microsoft SQL Server, 錯誤: 5120)

原因: 無該資料庫檔案存取權限、無存放該資料庫檔案資料夾存取權限...

解法1. 
增加資料庫檔案的必要存取權限,例如這篇

SQL Server附加資料庫失敗 錯誤碼 5120 作業系統錯誤 5 存取被


解法2. 
將資料庫檔案搬到有存取權限的資料夾,例如這篇

SQL Server無法附加資料庫? 錯誤碼 5120 / 作業系統: 5 權限不足



解法3.
用"以系統管理員身分執行"的方式開啟Microsoft SQL Server Management Studio,並執行附加作業。

有趣的是用這方式附加資料庫檔案成功以後,下次直接開啟Management Studio時還是可以正常存取資料庫。



2016年4月13日 星期三

sorted a Dictionary with C#

1. Using LINQ (Language-Integrated Query)
2. Converting Values and Keys to a List
3. Using delegate

Reference:

 1- How to sort a Dictionary with C#
 2- Sorts a Dictionary by keys and by values.
 3- 當心LINQ搜尋的效能陷阱

不想用LINQ、不想實作,有沒有更快速的方法?

有的,用SortedDictionary<TKey, TValue>Class取代Dictionary<TKey, TValue>即可自動以TKey做排序。

2016年4月12日 星期二

自由軟體授權條款

自由軟體既方便又好用,比較困擾的是授權條款,

有時想在專案中加入自由軟體,又會擔心不當引用,

腦容量有限,很少分配在這些法律條款上,

不管是查過授權條款已經確認引用合法,
或是測試階段先用在說,

每當看到License 這個單字,多少會顧慮有沒有踩到地雷...

這篇文只會摘錄曾經使用過的授權條款的授權原則,算是備忘,也避免一再的重複查詢。


自由軟體鑄造場(Open Source Software Foundry)-授權條款介紹
http://www.openfoundry.org/tw/licenses



The MIT License (MIT)

維基 MIT授權條款

OpenFoundry MIT授權條款

被授權人權利
給予被授權人對軟體沒有受限制的使用、重製、修改、合併 (merge)、出版發行(publish)、散布再授權、及販售軟體的重製物。
被授權人可依照程式上的需要修改授權條款內容成為適用內容。

被授權人義務
必須在所有的重製物或在軟體實體部份中將著作權聲明和允許聲明納入。


2016年4月7日 星期四

Method not found: 'CrystalDecisions.ReportAppServer.DataDefModel.PropertyBag CrystalDecisions.ReportAppServer.ReportDefModel.ISCRExportOptions.get_ExportOptionsEx()'

Method not found: 'CrystalDecisions.ReportAppServer.DataDefModel.PropertyBag CrystalDecisions.ReportAppServer.ReportDefModel.ISCRExportOptions.get_ExportOptionsEx()'

這台開發機會遇到這個狀況,大概是Crystal Report新舊版本交雜所導致,

解決方法:

移除"所有"的SAP Crystal Report (包含 Crystal Report for Visual Studio, Crystal Report Runtime )後重新安裝。

以下是包含Crystal Report for Visual Studio & Crystal Report runtime 64bit (V13.0.10.1385) 的下載連結,多人開發專案請先評估再安裝。