in

Darkthread

黑暗執行緒
All Tags » ASP.NET (RSS)

Browse by Tags

  • WCF 比 ASP.NET Core WebAPI 更快?

    同事轉了一篇探討 WCF 與 ASP.NET Core WebAPI 效能的比較文章: Is WCF faster than ASP.NET Core- Of course not! Or is it? 結論出乎意料。 作者看到一則 Reddit 上關於 WCF/ASP.NET WebAPI 效能討論 ( Reddit 可想成國外的 PTT) 就認真了,跑了蠻專業的測試,試了多種組合,WCF 幾乎都輕鬆將 ASP.NET Core WebAPI 甩在身後。進一步分析,JSON Serializer 似乎是速度的關鍵,當物件複雜化,改用 MessagePack 格式序列化的 ASP.NET/ASP...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 04-18-2018
  • 【茶包射手日記】ASP.NET 2.0 Web Site 升 3.5 怪異問題一則

    分享在同事專案發現的有趣茶包。 同事接手超古老的 ASP.NET 2.0 WebSite 專案,第一步先升級成 3.5,從青銅器時代推演到鐵器時代。依過去經驗,3.5 也基於 2.0,除了要將 AJAX 擴充功能轉成內建,幾乎是無痛升級。(事實上,2.0 就算升 4.0/4.5 也很少遇到麻煩) 但這回遇上怪事。未升 3.5 前 Build Web Site 成功,升級後出現缺少 ASP.NET AJAX Toolkit 版本問題, 排除過程冒出一個編譯錯誤,某個共用類別存取了外部程式庫元件的 internal 屬性。程式寫法挺妙的,舉例來說,元件 CommLib.Data.DataHelper...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 04-01-2018
  • HttpUtility.ParseQueryString 還原字串中文編碼問題

    在 .NET 裡要解析 URL 參數字串(QueryString,例如: a=1234&b=ABCD),自己拆字串就遜掉了,呼叫 HttpUtility.ParseQueryString() 才是王道,這是我 很多年前 就學到的知識。 最近再有個新發現,ParseQueryString() 所傳回的結果表面上是個 NameValueCollection,但骨子裡則是內部型別 – HttpValueCollection,它有個特異功能,ToString() 被覆寫成可將 Name/Value 再組合還原成 QueryString,所以我們可以用它解析 QueryString,增刪修改參數再...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 03-20-2018
  • 當心 Request.Url.ToString() 傳回無效 URL

    抓到一個誤用 Request.Url.ToString() 造成的 Bug。 由使用者回報錯誤,追出某段程式擷取 Request.Url.ToString() 加工產生的連結有誤。 原本 URL 參數包含另一頁網址,依規定做了 UrlEncode,如: b=http%3A//blog.darkthread.net%3Fm%3D1%26a%3D456 。ASP.NET 程式抓取 Request.Url.ToString() 修改後串接額外參數"&a=ABC",得到的結果卻是 b=httq://blog.darkthread.net/?m=1&a=456&a...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 03-07-2018
  • Request.Url.Host 偽造實驗

    我有個 IIS 網站同時繫結多個 IP,想做到依據連上的伺服器 IP 授與不同權限,例如: 有些功能開放外網 IP 連入使用,某些功能限定內網及 localhost IP 才能用。設立兩個站台繫結不同 IP 及 Port 但共用同一份 ASP.NET 程式碼是一種解法,但我貪圖共用 Process 及靜態物件的便利性,因此要研究正確識別 Request 伺服器來源 IP 的方法。 舉最簡單的例子,IIS 預設繫結到所有 IP 位址("*"),而若伺服器 IP 為 172.28.1.1,則使用者用 httq://127.0.0.1、httq://localhost、httq:...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 01-11-2018
  • ASP.NET 眼中的 ".\Blah.sqlite" 在哪裡?

    同事報案,在ASP.NET 存取 SQLite 資料庫 ,路徑誤用 ".\Blah.sqlite" (一般多使用 Server.MapPath("~\App_Data\Blah.sqlite"),參考: App_Data的隱身特性 ),程式可以運作,以為 Blah.sqlite 檔案會出現在 bin 目錄但沒有,使用 Everything 搜尋也找不到蹤跡。 這裡有個迷思,依直覺 ASP.NET 伺服器端程式編譯成的 DLL 以及參照的程式庫 DLL 都是放在 bin 目錄,感覺 ASP.NET 的根目錄(或者說工作目錄,".\")應該也在...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 12-22-2017
  • Coding4Fun–自動產生副檔名轉 ContentType 對照表

    昨天的文章 提到 .NET 4.5 內建 MimeMapping.GetMimeMapping(),可省去自己用 switch … case 逐一列舉副檔名對應ContentType 的工夫。 不過,這項福利僅限於 .NET 4.5+,如果程式使用的是 .NET 3.5 或 .NET 4.0,只能乖乖自己處理。理論上,新開發的程式用 .NET 4.5.2+ 名正言順(參考:  蛤,微軟停止.NET 4.0-4.5-4.5.1的技術支援?會對我的系統造成影響嗎? ) BUT! 生活周遭總還是有 .NET 4.0/3.5/2.0 甚至 1.1 的線上系統,雖如風中蟾蜍,卻仍還需要擴充維護...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 12-09-2017
  • C# 小技巧 - 不必再靠 switch case 副檔名決定 ContentType 囉

    由 ASP.NET 伺服器端傳回檔案內容,需指定適當的 ContentType,瀏覽器才會將其視為圖檔、HTML、CSS 或 JavaScript 處理。過去我都是土法煉鋼,取得副檔名再用 switch … case 針對已知檔案種類列舉對應 ContentType,像這樣: string contentType = "" ; switch (fileName.Split( '.' ).Last()) { case "jpg" : contentType= "image/jpeg" ; break ; case "gif"...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 12-08-2017
  • 小筆記-避免 ThreadAbortException 的Response.End() 替代寫法

    一個古老問題, 在 ASP.NET 呼叫 Response.End() 會觸發 ThreadAbortException ,假警報常會干擾偵錯與問題追查,之前寫過文章但沒整理完整的替代方案,今天補上筆記。 使用以下程式重現問題,WebForm 網頁包含一枚按鈕,按下時透過 AJAX 呼叫同一程式,Page_Load() 事件遇 Request["m"] == "ajax" 時 Response.Write() 傳回 Guid 並以 Response.End() 中止程式,避免傳回 HTML 內容: <%@ Page Language="C#"...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 09-12-2017
  • 【茶包射手筆記】IIS 設定順序導致 500.19 錯誤

    HTTP 500.19 錯誤多因 ASP.NET 父網站與子網站因繼承關係導致設定項目重複,過去曾經歷幾次( IIS 7限制IP存取的設定錯誤 、 怪異的web.config HttpHandler重複錯誤 ),今天再遇到 IP 限制設定重複導致子網站掛點的狀況,同事發誓一切操作合情合理,想想上回 IIS 7 IP 限制設定打架案例沒有逆天亂搞照樣出錯,推測其中有雷,決定現場模擬還原真相。 我在 IIS 設定一獨立站台 Test,其下加入 Child 子網站。父網站的 index.html 以 IFrame 內嵌 Child/index.html 進行測試。 透過 IIS 管理介面設定 Test...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 07-06-2017
第1頁,共30頁 (300個項目) 1 2 3 4 5 下一頁 > ... 最後一頁 »
Powered by Community Server (Non-Commercial Edition), by Telligent Systems