今天把一隻ASP.NET程式部屬到Win7的IIS後,一跑出現下面的錯誤訊息
警告: 組件繫結記錄切換為 OFF。
若要記錄組件繫結失敗,請將登錄值 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) 設為 1。
注意: 與組件繫結失敗記錄相關的效能會有部分負面影響。
若要關閉此功能,請移除登錄值 [HKLM\Software\Microsoft\Fusion!EnableLog]。
有看沒有懂的訊息,最後請出Google大神
ASP.NET 應用程式執行於 Windows x64 環境
如下圖,將IIS的集區,設定為啟用32位元應用程式,即可正常執行...
文章分類
.NET 5
.NET Core
.NET FrameWork
3C
工作室佈告欄
心理探討
專案測試
軟體工程
開發流程
Agile
Algorithm
ALM
Android SDK
Angular
AngularJS
Architecture
ASP.NET
ASP.NET Core
Books
Bower
C#
C# (Extensions)
ChatBot
CLOUD
Comic
CSS
Dapper
Design Pattern
DevOps
Django
Docker
Domain Driven Design
Entity framework
EXCEL
Financial Derivatives
Firebase
Flask
Front-end
GIT
GitHub
Golang
GraphQL
Gulp
Identity Server
IIS
javascript
jQuery
Keyboard
L-I-F-E
LetsEncrypt
LINQ
LINUX
MongoDB
Multi-Thread
Nuget
Open Source
Oracle
OS
Performance issue
PostgreSQL
Project Management
Python
RabbitMQ
Redis
Redux
RxJS
SAP TM
Scrum
SEO
Sharepoint
Sql Server
SSRS
Study
Swagger
Team Foundation Server
TensorFlow
Testing
Toolkits
Tricking
Trouble Shooting
UML
Unit Test
Vim
Visual Studio
Visual SVN Server
VSCODE
Vue
Web Api
Web Service
WebStorm
Windows Application
WSL
2012年12月5日 星期三
2012年12月4日 星期二
關於C#程式路徑的問題
這幾天又遇到這個問題啦!
總之最好存取任何檔案時,都是使用完整路徑比較保險!
有空再來整理一下~~
http://www.cnblogs.com/zhfen/archive/2010/05/17/1737406.html
總之最好存取任何檔案時,都是使用完整路徑比較保險!
有空再來整理一下~~
http://www.cnblogs.com/zhfen/archive/2010/05/17/1737406.html
2012年11月30日 星期五
PMP考試甘苦談~
2012/11/20 小弟終於辛苦的考過PMP認證了。
說來拿到這張PMP的過程,真的是花了我很多時間和苦心。
我在公司原本是很單純的寫程式,但在去年一些同事離職後,
小弟也被指派上火線掛PM帶專案,工作除了原來的系統分析、設計,和寫系統,也要擠出時間做需求訪談、報告、寫文件和溝通。
剛開始的時候,每天都加班,而且還要惡補專案中同仁的業務、系統流程。 去開會被USER質問(就是被釘的意思)也不是沒有,但是回來後,苦水只能往裡面吞,盡量避免負面的情緒影響團隊。
但是這也給了我一個好機會去嘗試管理面的工作,也在今年七月趁這個機會報名恆逸的PMP課程。
課堂上認識了張憲中老師,和很多其他公司的PM。
第一堂課,張老師讓每個人分享自己的苦水,哇,大家講起苦水真是欲罷不能~~
至於張老師的PMP課程,學生真是受益良多。 老師用很多本身的實務經驗配合幽默的簡報技巧,並適時的讓學員互動,把原本看似很無聊的專案管理課程,變成一門很有趣的管理課程。
(我也偷偷的向老師學了幾招簡報技巧 J)
恆逸也提供了很多考古題,讓學員可以作答。 所以八月結束總複習後,小弟馬上就上去PMI報名準備考試了,沒想到…
竟然被抽中被稽核!!
傻眼,只好先弄一些審查的文件,考試只能往後延了。 結果九月的時候,剛好又碰上公司正忙 … 只好再延。 到了十一月,同時去上課的同學都已經順利通過了,小弟聽聞後,不知哪來的傻勁,馬上報名三天後的考試! (現在想想,我真的很衝!!)
結果那三天,回家後就讀書到半夜,每天睡不到五個小時,超累!!
11/20 那天根本半睡半醒著去考場,考前真的超級緊張,開始作答後,前面五十題就花了我一個小時,幾乎每題都看得很仔細,但是其實很多都很像考古題,所以慢慢的就比較輕鬆作答了…
但是有一些題目(尤其是計算題,ex 要徑問題),就有一些變化了。
另外有一些流程的工具 …如柏拉圖,中文翻譯可能跟我們看的中文書不一樣,這時候就要回去看英文題目。 另外我也發現有一題的選項,中文翻譯不正確,遇到這種情形,還是都要往下看一下英文題目和選項才能確定答案。
最後四個小時到數完畢後,系統就會問你要不要做問卷(我當然想知道有沒有通過,所以跳過)。
接著命運的Loading齒輪就開始在畫面上旋轉 … 大概有三十秒吧!!
就跑出”PASS” 的字樣!
終於放下了心中的一顆大石!!
整體來說,小弟覺得只要把上課的教材和考古題看熟做熟,通過應該是沒有問題的!!
如果您正在準備考試的話,加油! 您一定可以低!
2012年11月26日 星期一
[C#] 快速了解泛型委派
▌Action & Func
Action<T, T…> 沒有回傳值的泛型委派
Func<T,T…> 可以回傳值的泛型委派
對小弟來說,泛型委派和Delegate最大的差別就是,不用先宣告一個Delegate定義名稱。
使用上較方便。
直接看範例…
▌Sample
先定義一個CName物件,裡面會放要委派的方法。
public class
CName :IDisposable
{
private
String sName;
public
CName(string name)
{ this.sName
= name; }
/// <summary>
/// 沒有參數,沒有回傳值
/// </summary>
public
void DisplayToConsole() { //… }
/// <summary>
/// 一個參數,回傳String型別
/// </summary>
public
String DisplayToWindow(String sDesc) {
//… }
/// <summary>
/// 兩個參數,回傳String型別
/// </summary>
public
String DisplayToWindow(String sDesc01, String
sDesc02) { //… }
/// <summary>
/// 泛型:兩個個參數,無回傳值
/// </summary>
public
void Combine<T>(T itemA, T itemB) { //…
}
/// <summary>
/// 泛型:兩個個參數,回傳String型別
/// </summary>
public
String Combine_WithRtnVal<T>(T
itemA, T itemB) { //… }
}
|
▋Delegate
public delegate
void ShowName();
/* 測試Delegate */
using (CName
cName = new CName("Delegate測試"))
{
ShowName
_showName = cName.DisplayToConsole;
_showName();
}
|
▋Action 匿名委派
/* 測試Action匿名委派 */
using (CName
cName = new CName("Action匿名委派"))
{
Action
_showNameActDel = cName.DisplayToConsole;
_showNameActDel();
}
|
▋Generic Action 泛型匿名委派
/* 測試Action泛型匿名委派 */
using (CName
cName = new CName("Generic Action"))
{
Action<String, String>
_showNameActGen = (x, y) => cName.Combine(x, y);
//Action<String>
_showNameActGen = cName.Combine<String>;
_showNameActGen("1", "2");
}
|
PS. Action<String, String>
指的是委派的方法裡面須帶兩個String參數。
▋Generic Func
/* 測試Func泛型匿名委派 */
using (CName
cName = new CName("Generic Func"))
{
Func<int, int, String> _showNameFuncGen = (x, y) =>
cName.Combine_WithRtnVal(x, y);
String
sRslt = _showNameFuncGen(1, 2);
}
|
PS. Func<int, int, String> 指的是委派的方法裡面須帶兩個int參數,回傳String。
如果意猶未盡,可以參考MSDN的詳細說明 !
2012年11月8日 星期四
[C#] Epplus (Excel元件)
Epplus (Excel元件)
3.
直接列出匯出成Excel的程式碼…
//若存在該檔案則先刪除
if
(File.Exists(sFilePath))
{
File.Delete(sFilePath);
}
//開檔
FileStream
fs = new FileStream(sFilePath,
FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
//載入Excel檔案
ExcelPackage
ep = new ExcelPackage(fs);
if
(ep.Workbook.Worksheets[sNewSheetName] == null)
//不存在該Sheet
{
//加入一個WorkSheet
var
ws = ep.Workbook.Worksheets.Add(sNewSheetName);
ws.View.ShowGridLines = true; //是否顯示格線
}
//取得WorkSheet
ExcelWorksheet
sheet = ep.Workbook.Worksheets[sNewSheetName ];
//設定起始列為3
int
startRowNumber = 3;
int
DataRowNumber = startRowNumber+1;
//寫入標題文字
for (int
i = 0; i < dataGridView.Columns.Count; i++)
{
//設值為欄位名稱
sheet.Cells[startRowNumber,
i + 1].Value = dataGridView.Columns[i].Name;
//設定樣式
sheet.Cells[startRowNumber, i +
1].AutoFitColumns(); //自動欄寬
//sheet.Column(i
+ 1).Width = 100;
sheet.Cells[startRowNumber,
i + 1].Style.HorizontalAlignment = OfficeOpenXml.Style.ExcelHorizontalAlignment.Center;
//欄位置中
sheet.Cells[startRowNumber,
i + 1].Style.Border.BorderAround(OfficeOpenXml.Style.ExcelBorderStyle.Thin);
//儲存格框線
}
//寫入資料
int
ColCnt = dataGridView.Columns.Count; //欄位數
int RowCnt =
dataGridView.Rows.Count; //資料數
for
(int i = 0; i < RowCnt; i++)
{
for
(int j = 0; j < ColCnt; j++)
{
//讀值
string cellValue = "";
if (dataGridView.Rows[i].Cells[j].Value != null)
{
cellValue =
dataGridView.Rows[i].Cells[j].Value.ToString();
}
else
{
cellValue = "";
}
//寫值
sheet.Cells[DataRowNumber, j + 1].Value = cellValue;
//樣式設定
//sheet.Cells[DataRowNumber,
j + 1].AutoFitColumns(); //自動欄寬
sheet.Cells[DataRowNumber, j + 1].Style.HorizontalAlignment =
OfficeOpenXml.Style.ExcelHorizontalAlignment.Center;
//欄位置中
sheet.Cells[DataRowNumber,
j + 1].Style.Border.BorderAround(OfficeOpenXml.Style.ExcelBorderStyle.Thin);
//儲存格框線
}
DataRowNumber++;
}
//存檔
ep.SaveAs(fs);
fs.Close();
//關閉資源
ep.Dispose();
ep = null;
MessageBox.Show("儲存成功! ");
訂閱:
文章 (Atom)