設定 Web Deploy Package 部署後, 不要刪除特定資料夾

情境: 使用 TFS 做 CI/CD , 發現 Web Deploy Package 會刪除目的地中的資料夾, 造成使用者上傳的檔案都不見了. 解決方式: 用筆記本開 YourApplication.csproj 加入以下宣告,讓部署的時候,排除掉Uploads資料夾,也同時不要刪除該資料夾 <ItemGroup>       <ExcludeFromPackageFolders Include=”Uploads”>     </ExcludeFromPackageFolders>   </ItemGroup>    <ItemGroup>        <MsDeploySkipRules Include=”SkipAppData”>         <SkipAction>Delete</SkipAction>         <ObjectName>dirPath</ObjectName>         <AbsolutePath>Uploads</AbsolutePath>         <XPath></XPath>       </MsDeploySkipRules>   </ItemGroup>   Enjoy. Jacky


Windows 2008 R2 標準版免安裝快速升級到企業版

由標準版升到企業版可以由安裝光碟中重新安裝一次. 另一個方式是用 DISM.exe 的 Set-Edition 指令直接升級. 用 DISM /online /Get-CurrentEdition 知道現在的版本   用 DISM /online /Get-TargetEditions 查看可以升級到的版本為何.     用 DISM /online /Set-Edition:<edition ID> /ProductKey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX  升級 範例: DISM /online /Set-Edition:ServerDatacenter /productkey:ABCDE-ABCDE-ABCDE-ABCDE-ABCDE 執行完成再重新啟動電腦即完成升級. 參考資訊: https://blogs.technet.microsoft.com/server_core/2009/10/14/upgrading-windows-server-2008-r2-without-media/


程式取得 AD 驗證完後, 帳號詳細狀態

很多朋友會開發與 AD 驗證帳號的程式, 並希望取得帳號的狀態值, 提供一個簡單的方式可以方式知道這些狀態. catch (System.DirectoryServices.DirectoryServicesCOMException directoryServiceCOMException) { Console.WriteLine(“—————————————————————“); Console.WriteLine(string.Format(“{0}: Message: {1}”, DateTime.Now.ToString(), directoryServiceCOMException.Message));     Console.WriteLine(string.Format(“{0}: Message: {1}”, DateTime.Now.ToString(), directoryServiceCOMException.ErrorCode));     Console.WriteLine(string.Format(“{0}: Message: {1}”, DateTime.Now.ToString(), directoryServiceCOMException.ExtendedError));     Console.WriteLine(string.Format(“{0}: Message: {1}”, DateTime.Now.ToString(), directoryServiceCOMException.ExtendedErrorMessage)); } directoryServiceCOMException.ExtendedErrorMessage 中會回傳帳號的詳細狀態: [LDAP: error code 49 – 80090308: LdapErr: DSID-0C090334, comment: AcceptSecurityContext error, data 775, vece ] 代號相關的狀態說明: 525 user not…


有需要用到 WINDOWS 2016 的 IIS 嗎?

這是好多夥伴問我的問題? 一定要用最新的嗎? 對, 一定要用 Windows 2016 的 IIS 10. 主要的原因是它支援 HTTP/2 詳細的說明: HTTP/2 on IIS 或是在網路上找一下 HTTP/2 的一些說明, 就了解為何我的答案如此肯定. HTH. Jacky


Windows Server 2016 之 IIS 10 效能調校注意事項

Tuning IIS 10.0 文章中有提到要注意的事項, 大家可以跟這文章遂一調整. In this article Kernel-mode settings Cache management settings Request and connection management settings User-mode settings Ideal CPU setting for NUMA hardware User-mode cache behavior settings Compression behavior settings Central binary logging Application and site tunings Managing IIS 10.0 modules Classic ASP settings ASP.NET concurrency setting Worker process and recycling options…

1

使用 Exchange Web Service (EWS) 更新會議的做法

請參考下列的程式碼粗體字的時間指定. 若沒有指定, 時間會變成 UTC .  Central Standard Time 可以指定為 Taipei Standard Time 即為台北的時區.   static void UpdateAppointmentTimeZone(ExchangeService service, ItemId apptId, bool shiftAppointment) {     PropertySet includeTimeZones = new PropertySet(AppointmentSchema.Subject,                                                    AppointmentSchema.Start,                                                    AppointmentSchema.ReminderDueBy,                                                    AppointmentSchema.End,                                                    AppointmentSchema.StartTimeZone,                                                    AppointmentSchema.EndTimeZone);       Appointment apptToUpdate;       // Load the existing appointment.     // This will result…


將舊版的 TFS 升級到 TFS 2017.1

舊版 TFS 升級的路徑如下圖: 總結這一陣子來升級的心得: 執行升級前一定要備份現在的 TFS 資料庫. 若有任何狀況發生, 還可以還原到現行的版本. TFS 2012 以前版本需要 2 ~ 3 次升級才會到 TFS 2017.1  TFS 2017 支援資料庫為 SQL 2014 及 SQL 2016. 升級時要資料庫要先升級完成, TFS 2017 安裝時會檢查資料庫的版本. Visual Studio 各版本支援 TFS 2017 的狀況: https://www.visualstudio.com/en-us/docs/setup-admin/requirements#client-compatibility Visual Studio 2017 Visual Studio 2015 Visual Studio 2013 Visual Studio 2012 Visual Studio 2010, requires Service Pack…


Windows 10 Creators Update 包含 .NET Framework 4.7 更新.

Windows 10 Creators Update 中有許多我喜歡的功能, 身為開發人員也必須知道 安裝 Creators Update 後, .NET Framework 4.7 也一起安裝了. .NET Framework 4.7 有新增功能也有修正 bug. 詳細資訊請參考: Announcing the .NET Framework 4.7 .NET Framework 4.7 release notes HTH. Jacky


VSTS/TFS 的 Release Management 到底可以做到那些平台的部署支援?

這個應該是客戶問我的 Top 5 問題之一. 去西雅圖參加 TechReady 時, 也跟 DevOps PM 交換了一下想法. 將PM 講的內容濃縮成下列兩點: Any Developer.  Any App.  Any Platform. 在微軟不是口號, 我們真的朝這個方向大大的努力. 所以沒有再限定在 Windows 平台. 基本上只要是 指令可以做到的事, 我們平台完全可以支援. 他也直接開啟 Release Management 的畫面說明 Command Line 的工具是跨平台的工具, 很多人都以為它是只能執行 在 Windows 平台的 cmd.exe. 其實它可以在任何平台上執行指令的. 如下圖: 這次去了西雅圖兩周, 除了學了不少新技術, 也跟不少人討論了客戶常問的問題或是方向. 再陸續跟大家分享. Enjoy. Jacky  


Coded UI 擷取執行時的畫面

在 Coded UI 執行的過程中會有許多的 UI 操作, 有時候會需要在特定的畫面擷取存檔做一個記錄. 實作方式如下: Image MyImage = UITestControl.Desktop.CaptureImage(); MyImage.Save(@”C:\Users\jchiou\Desktop\logs\YourNaming001.jpg”, System.Drawing.Imaging.ImageFormat.Jpeg); 如果再進階的運作, 可以將做圖片的比對功能, 可以參考同事的作法: How To: Do image comparison in Coded UI Test https://blogs.msdn.microsoft.com/gautamg/2010/04/08/how-to-do-image-comparison-in-coded-ui-test/   Enjoy. Jacky