NancyFx-打造小型 WebAPI 與 Microservice 的輕巧利器
在做非網站系統整合時,我很愛用一招:寫個 Process 提供 WebAPI 介面給其他系統呼叫,不管你用什麼烏語言鬼平台,怎麼可能找不到 HttpCllient 元件或程式庫?都民國幾年了敢跟我說你不會寫Call 網頁的程式?你瞧瞧,多理直氣壯,乘著主流趨勢我們站上制高點,高舉 Web API 大旗, 天下無敵,哇哈哈哈~這招很棒吧?不直接在 IIS 跑...
View Article硬碟 storahci 129 事件經驗一則
電腦怪怪的,開機只操作了幾分鐘,某些涉及磁碟寫入的程式會卡住無回應。重開機後暫時恢復,但幾分鐘後又發生同樣問題。事件檢視器看到大量 storahci 警告事件,訊息為「重設為裝置 \Device\RaidPort0 的指令已發出」(Reset to device, \Device\RaidPort0, was issued):爬文相關討論不少,多半指向 SATA...
View Article程式範例-使用 C# 查詢 CPU 與記憶體使用狀況
有個小需求想透過程式取得 CPU 與記憶體使用率,爬文發現用 C# 寫簡單到不行:建一個 PerformanceCounter 物件,指定分類、計數器名稱、執行個體,接著用 NextValue() 取值,輕鬆搞定。using System;using System.Diagnostics;using System.Threading; namespace JetEngine{class...
View Article使用 WMI 匯出 IIS 6 網站設定
IIS 6 網站要移轉到 Windows 2012 R2 主機,轉換前打算匯出網站完整設定檢視一次,排除過期或廢棄的網站應用程式,另外還想嘗試依據現有設定產生設定網站應用程式與虛擬目錄的自動化 Script,第一步要取得現有網站設定資料。使用 PowerShell Get-WmiObject -class IISWebVirtualDirSetting -namespace...
View Article程式範例-IIS WMI 網站設定資料解析
前一篇文章成功將 IIS 6 網站設定匯出成 JSON,不過原始資料太過龐雜,每筆虛擬目錄屬性超過140條,讓人眼花瞭亂。事實上因 IIS 設定具有繼承性,父目錄與子目錄的屬性絕大部分是相同的,針對某個虛擬目錄做的額外設定才是觀注焦點。例如:掛在可匿名存取 P 目錄下的 C 目錄被設成整合式驗證,描述 C 目錄設定時時只要列出 AuthNTLM = true 就好,與 P...
View Article筆記-使用 PowerShell 設定 IIS 網站
前篇文章由 WMI 資料解析出現有網站設定,經過篩選及調整,下一步計劃轉換成設定 IIS 網站的自動化腳本,以省去在 WebFarm 伺服器一台一台點選操作的煩人手工,也避免人為操作發生疏漏。PowerShell 已是管理 Windows 的奧林匹克官方指定語言, 可支援 IIS 的大小管理操作,擺著不用是跟自己過不去,雖然對 PowerShell 一知半解,還是得硬著頭皮學會,以下整理我還原...
View ArticleTIPS-在 Windows 批次刪除 N 天前的檔案
工作上常遇到的需求:Log、暫存檔案多半有保留年限,如何用一個指令刪除某個期限前的舊檔?今天才學到一個好用的 DOS 指令-forfiles,參數不多,簡單易用:/p 路徑名稱 查詢對象,省略時為現在所處資料夾 /m 檔名限制 可配合萬用字元限定檔名或副檔名,例如:*.log、ex1610*.log /s 指定搜尋範圍包含子目錄及其下層目錄/c "對找到檔案執行的動作" 例如:"cmd /c del...
View Article【茶包射手日記】ASP.NET MVC 403.14 錯誤烏龍
手動部署 ASP.NET MVC 專案到測試台,仗著自己對 MVC 的了解,沒用 Visual Studio Publish 功能也不是整個專案全搬,而是靠肉眼人腦決定搬哪些檔案。COPY 好檔案設好 IIS,預期該連上 /Home/Index 首頁卻冒出 HTTP 403.14。這問題以前遇過,起因 Windows 2008 SP2 (非 Windows 2008 R2)的 IIS 7...
View Article網路文章騙讚手法剖析
之前領教過內容農場利用 Clickjacking (點擊刧持)騙讚的手法,包含藏在影片播放鈕上方,一播影片就按讚,甚至讓隱形按讚鈕追著滑鼠游標跑,在網頁點任何地方就強迫中獎。最近常發現自已莫名訂閱了某些 FB 粉絲團,懷疑是某個讀文章會彈出「歡迎光臨」對話框的網站,今天再度遇到,決定一探究竟。(關於 Clickjacking...
View Article閒聊:不想走在「最前端」, WebForm 開發者也該學的技能
就用這篇鬼故事當開場吧!在 2016 年学 JavaScript 是一种什么样的体验?這幾年 HTML5 火紅,前端開發技術發展如黃河氾濫一發不可收拾,開發框架百家齊嗚,眼花瞭亂不知如何下手就算了,更要命的是市場主流每兩年就轉一次風向,兩年前我才含淚從 Knockout 轉到 Angular,現在卻眼看 React.js 及 Vue.js 可能把 Angular 的接班人 Angular 2 幹掉...
View Article發現 Chrome 外掛偷藏惡意程式
從 Chrome 網路監控發現異常活動,檢視本機網站卻跑出一段程式從某台 AWS 主機為網頁注入 /forton/inject_jq.js:inject_jq.js 載入同一主機下的 /forton/cbp/cmps/60_4c15b.js:60_4c15b.js 再載入更多...
View Article【茶包射手日記】Reporting Service訂閱呈現Pending,無法寄送郵件
Reporting Service(SSRS)有個訂閱功能,允許針對特定報表指定查詢參數、收件對象以及排程時間,建立訂閱(Subscription)後可定期用電子郵件寄日報表、週報表給相關人員,十分方便。接獲報案,某張日報表設有兩個訂閱,每天先發預覽版給檢核人員,方便有錯緊急更正,15分鐘後再發正式版給長官。遇到狀況為預覽版正確寄出,正式版的訂閱項目執行狀況呈現...
View Article與上層命名空間成員名稱重複問題:TypeScript 與 C#
同事遇到的 TypeScript 小問題一則,如下圖,Foo 與 Bar.Foo Module 裡都有個 IBlah Interface(不算良好的設計但合法,用在特定情境可簡化程式),在 Bar.Foo 內想引用更上層 Foo 的 IBlah,不管宣告型別是 IBlah 還是 Foo.IBlah,指向的都是 Bar.Foo.IBlah。同樣的情境,在 C# 裡也會上演,在 Bar.Foo...
View Article快速查詢主機目前安裝的 .NET 版本
工作上常遇到的需求:在陌生機器上想確認已安裝的 .NET Runtime 版本,只有 4.0,還是已升到 4.5.2 甚至 4.6?MSDN 建議的官方做法是檢查 Registry,程式邏輯不複雜要自己寫個小工具並不困難,但每次測試得 Copy 程式檔太搞剛,於是我想到了 PowerShell!在 Stackoverflow 找到網友分享用 Powershell 檢查 .NET...
View ArticleC# Interpolated Strings 字串插值
TypeScript 有個好東西,Template String,輸出內嵌動態資料 HTML 時非常好用,例如:var userName: string = "Jeffrey";var iconUrl: string = "/imgs/runner.gif";var html = `<div> Hello, ${userName}! <img src="${iconUrl}"...
View ArticleASP.NET MVC ScriptBundle Cache 原理剖析
工作上遇到幾起 ASP.NET MVC ScriptBundle 機制在更新 JS 檔後卻讀到舊版內容的問題,沒搞清楚原理查起問題有些茫然,做功課的時間又到了。 依據官方文件(見 Bundle Caching 一節),@Scripts.Render("~/bundles/blah") 會被轉成 <script src="/bundles/blah?v=FVs3…ulE1"...
View Article漫談 JSONP 的 XSS 攻擊風險
JSONP是解決跨網域 JavaScript 呼叫的古老方法,簡單有效又不挑瀏覽器,至今仍是我常用的兵器之一。最近在想一個問題,JSONP 呼叫時由客戶端指定 Callback 函式名稱,是一個可以注入惡意程式碼的管道,有否存在 XSS 攻擊的風險?需不需要積極防護?經過嘗試,發現要透過 JSONP 發動攻擊是可能的,但前題是開發者犯了某些低級錯誤。使用以下網頁示範:<%@ Page...
View ArticleVisual Studio 中文英文介面切換
Visual Studio 我習慣用英文版,尤其是版控有一堆術語:Check In、Check Out、View History、Pending Changes、Branch/Merge、 Get Latest 平時多用英文,溝通 UI 操作方法時硬要翻譯成「檢視記錄」、「暫止的變更」、「取得最新的版本」,挺彆扭。工作上遇到幾起誤裝 Visual Studio...
View Article