Browse by Tags

IIS HTTP 重新導向功能筆記
將 IIS 網站的特定網址導向其他網址,有幾種做法: UrlRewrite 模組 彈性高,支援複雜的轉換規則(可使用 Regular Expression 定義規則),能在使用者未察覺的情況下完成轉換,例如將 /product/book/computer 轉為 /product.aspx?zone=book&catg=computer,提供較友善的網址並增進 SEO。 但若轉址是因為網站或網頁搬家,需明白告知並建議使用者改用新網址,UrlRewrite 較不適用。 JavaScript 或...
Posted 10 May 2018 07:06 AMJeffrey | with no comments 3,024
Filed under: ,
【茶包射手日記】IIS Log 檔換日問題
線上主機每天產生數百 MB 的 IIS Log,為避免 Log 檔吃光磁碟空間,我們多會安排排程執行壓縮及清理作業,每天將前一天的 Log 壓成 ZIP 檔,再依「原始 Log 檔保留 N 天,壓縮 Log 保存 M 天,超過 M 天移至後線儲存空間」的原則刪除或搬移檔案。 今天發現某台機器的 Log 清理排程每天準時兩點執行,但 IIS Log 壓縮檔全是空包彈,大小只有 22 Bytes,裡面空空如也。 起初以為是 Log 檔過大壓縮失敗,但經驗中用 7Zip 壓過數 GB 的大檔,加上現場實測用相同的...
Posted 04 May 2018 10:40 PMJeffrey | with no comments 2,723
Filed under:
IIS HTTP 強制轉 HTTPS 簡易做法
再遇到老題目:在 IIS 上如何將 HTTP 請求強制導向 HTTPS? 之前試過顯示說明網頁,倒數後透過 JavaScript location.href 轉向 HTTPS 的做法 - 設計賓至如歸的HTTPS強制導向網頁 。 但這有個缺點,如果不需要顯示導向提示,則先 HTTP 200 送回正常網頁再由瀏覽器另外發出請求連上 HTTPS 多耗費一次往返,不如直接回傳 HTTP 301/302 導向有效率,而連上 HTTP 時回應 HTTP 200 還可能會被搜尋引擎誤判為有效網址。 網路建議的解法多是使用...
Posted 21 February 2018 11:24 PMJeffrey | with no comments 7,656
Filed under:
徹底移除 IIS Response Header 版本資訊
從 IIS Reponse Header 移除 Server、X-AspNet-Version、X-Powered-By 等版本資訊,可降低因曝露資訊被鎖定攻擊的機率,被視為提高資安防護的手段(效果高低見仁見智,但有些資安掃瞄將此列為弱點,不做也得做)。這已算是老話題,網路上有不少討論與參考文章: mrkt 的程式學習筆記- ASP.NET MVC - 移除特定的 Response Headers 內容 Troy Hunt: Shhh… don’t let your response headers...
Posted 30 January 2018 09:50 PMJeffrey | 2 comment(s) 5,665
Filed under:
Hangfire 筆記2 - 執行定期排程
想用 ASP.NET Hangfire 跑定期排程,有一個前題是「需確保網站永遠處於執行狀態」,先推薦幾篇相關文章: [ASP.NET]使用 Hangfire 來處理非同步的工作 - 亂馬客 - 點部落 [IIS]為什麼應用程式集區設定了 AlwaysRunning 沒有效果呢- - 亂馬客 - 點部落 Making ASP.NET application always running — Hangfire 1.6 documentation 摸索過程我發現更簡單的新做法,實測可行,整理設定步驟如下...
Posted 25 January 2018 06:48 AMJeffrey | 2 comment(s) 4,728
Filed under: , ,
IIS HTML 檔 Cache 行為觀察
跟同事討論到:「IIS 在靜態檔案更新時會強制瀏覽器讀取新版本嗎?」 HTTP Header 有不少與 Cache 管理有關,協助瀏覽器用 Cache 減少網路傳輸量,例如:Cache-Control、If-Modified-Since、ETag… 等。要了解這些技術細節,推薦幾篇文章: 循序漸進理解 HTTP Cache 機制 - TechBridge 技術共筆部落格 HTTP 快取 - Web - Google Developers IIS 預設藉由 ETag 及 If-Modified-Since...
Posted 17 January 2018 09:28 PMJeffrey | with no comments 4,313
Filed under:
ASP.NET MVC 回傳 HTTP 400 Bad Request 並附加錯誤訊息
同事的專案遇到以下需求:依規格實作 WebAPI (考量開發彈性,使用 ASP.NET MVC Controller,未走 ApiController ),規格定義遇到某些狀況需抛回 HTTP 400 Bad Rquest 並以 JSON 格式回傳錯誤訊息。 一開始的寫法如下: public ActionResult BadRequestFail() { Response.SetStatus(HttpStatusCode.BadRequest); return Content( "{ ...
Posted 17 January 2018 06:32 AMJeffrey | with no comments 4,235
Filed under: ,
【茶包射手日記】Win10 IIS 無法啟用 32 位元模式(HTTP 503)
在工作機 IIS 測試 ASP.NET 網站,得到「An attempt was made to load a program with an incorrect format /試圖載入格式錯誤的程式」,這是經典問題,一看訊息就知是 32/64 位元版本不對,好發於在 x64 Windows 使用 32 位元 Oracle Client 的 情境 。基本上只需在 IIS AppPool 進階設定 啟用 32 位元模式 即藥到病除。這回狀況不同,啟用 32 位元後網站徹底掛點,顯示 HTTP 503...
Posted 29 December 2017 09:05 PMJeffrey | with no comments 2,836
Filed under: ,
【茶包射手筆記】IIS 設定順序導致 500.19 錯誤
HTTP 500.19 錯誤多因 ASP.NET 父網站與子網站因繼承關係導致設定項目重複,過去曾經歷幾次( IIS 7限制IP存取的設定錯誤 、 怪異的web.config HttpHandler重複錯誤 ),今天再遇到 IP 限制設定重複導致子網站掛點的狀況,同事發誓一切操作合情合理,想想上回 IIS 7 IP 限制設定打架案例沒有逆天亂搞照樣出錯,推測其中有雷,決定現場模擬還原真相。 我在 IIS 設定一獨立站台 Test,其下加入 Child 子網站。父網站的 index.html 以 IFrame...
Posted 07 July 2017 12:14 AMJeffrey | with no comments 6,876
Filed under: ,
客製靜態檔案 HTTP 404 訊息
同事報案,某組 Windows 2012R2 Web Farm 均已設定 web.config <customErrors mode="On" /> HTTP 404 網頁理應如下: 但 Web Farm 其中一台卻會顯示詳細錯誤,導致實體路徑資訊外洩: 最後同事找出原因,IIS Error Pages 設定有個 Edit Feature Settings,問題主機被設成「Detail Errors」: 心中對這組設定與 customErrors 的關係滿心狐疑,爬文後才驚覺自己...
Posted 13 March 2017 11:16 PMJeffrey | 2 comment(s) 5,358
Filed under: ,
小試 IIS 的簡易 DoS 防護-動態 IP 限制
這幾天,DDoS 攻擊事件在台灣鬧得沸沸揚揚。 DoS 攻擊 可約略分為頻寬消耗型(找一大群鄉民擠在餐廳門口)及資源消耗型(召喚服務生過來點菜連點兩鐘頭,或一口氣點兩百盤紅燒獅子頭),從網站管理者的角度,對頻寬消耗型攻擊完全無能為力,只能靠 ISP 或網管單位防禦;但對於資源消耗型攻擊,倒是有些因應對策。(例如:把十分鐘還沒點完菜的客人攆出去或把點兩百盤獅子頭的客人打成豬頭) 我知道有一些 ASP.NET 設定就與 DoS 防護有關,例如:每次搞檔案上傳時都要手動調大的 MaxRequestLength...
Posted 07 February 2017 10:34 PMJeffrey | with no comments 13,011
Filed under:
小技巧-多站台共用 IIS 80 Port
講到要在一台主機架設多個站台,一般直覺想到的是用不同的 Port 區隔,例如:httq://web_server/、httq://web_server:8080/ 指向不同站台。不過,非 80 Port 網址親和力較差,甚至會被某些較 機歪 嚴格的防火牆阻擋(只開放 80 及 443),那麼同一台主機上的多個站台可以共用 80 Port 嗎?Yes!這是 HTTP 標準應用情境之一,主流網站伺服器也都內建支援。 請看示範。先使用 ping 驗證 www.intra.net 與 api.intra...
Posted 07 December 2016 09:43 PMJeffrey | with no comments 11,996
Filed under:
筆記-使用 PowerShell 設定 IIS 網站
前篇文章 由 WMI 資料解析出現有網站設定,經過篩選及調整,下一步計劃轉換成設定 IIS 網站的自動化腳本,以省去在 WebFarm 伺服器一台一台點選操作的煩人手工,也避免人為操作發生疏漏。 PowerShell 已是管理 Windows 的奧林匹克官方指定語言, 可支援 IIS 的大小管理操作,擺著不用是跟自己過不去,雖然對 PowerShell 一知半解,還是得硬著頭皮學會,以下整理我還原 IIS 網站設定用到的指令:(各方達人如知更便捷的做法,請不吝指教) 1. 建立 Application...
Posted 24 October 2016 07:32 AMJeffrey | with no comments 5,759
Filed under: ,
程式範例-IIS WMI 網站設定資料解析
前一篇文章 成功將 IIS 6 網站設定匯出成 JSON,不過原始資料太過龐雜,每筆虛擬目錄屬性超過140條,讓人眼花瞭亂。事實上因 IIS 設定具有繼承性,父目錄與子目錄的屬性絕大部分是相同的,針對某個虛擬目錄做的額外設定才是觀注焦點。例如:掛在可匿名存取 P 目錄下的 C 目錄被設成整合式驗證,描述 C 目錄設定時時只要列出 AuthNTLM = true 就好,與 P 目錄相同的設定可以全部省略。為實現這點,我想到一個簡單有效的演算法:拿子目錄的所有屬性跟父目錄比較,只顯示有差異部分。 WMI...
Posted 23 October 2016 12:19 PMJeffrey | with no comments 3,420
Filed under:
使用 WMI 匯出 IIS 6 網站設定
IIS 6 網站要移轉到 Windows 2012 R2 主機,轉換前打算匯出網站完整設定檢視一次,排除過期或廢棄的網站應用程式,另外還想嘗試依據現有設定產生設定網站應用程式與虛擬目錄的自動化 Script,第一步要取得現有網站設定資料。 使用 PowerShell Get-WmiObject -class IISWebVirtualDirSetting -namespace "root/MicrosoftIISv2" -computername "IIS6主機名稱"...
Posted 22 October 2016 01:12 PMJeffrey | with no comments 2,650
Filed under:
更多文章 下一頁 »

搜尋

Go

<June 2018>
SunMonTueWedThuFriSat
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567
 
RSS
創用 CC 授權條款
【廣告】
twMVC
最新回應

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication