跳到主要內容

發表文章

目前顯示的是 2017的文章

[.net]繁簡中文轉換程式

   '將繁體中文字轉換成簡體中文         'strData = StrConv("強力鎯頭的VB部落", VbStrConv.SimplifiedChinese, 2052)         ' 將簡體中文字轉換成繁體中文         'strData = StrConv(strData, VbStrConv.TraditionalChinese, 1028)

[IIS]IIS - ASP.NET 網站基本優化設定 --筆記

運行 ASP.NET 基本上都是掛載在 IIS 上面,但 IIS 預設的設定,並不適合 24 小時不中斷的營運系統。 如果沒有適當的調整,可能會造成使用者的感受不佳,而你又偏偏不會遇到。 本篇將介紹 IIS 運行 ASP.NET 網站的基本優化設定。 應用程式集區 打開 IIS 管理員,到應用程式集區,選擇網站後,開啟進階設定: 1. 一般 (General) 佇列長度 (Queue Length) 預設值是  1000 ,當封包數量在同一時間到達該指定值,之後的 Request 都會變成 HTTP Status 503 Service Unavailable。 例:當有同時間有 1001 個 Request 一起送到 IIS,第 1001 個 Request 會直接回傳 503,不會進到 ASP.NET 處理。 也不是無限大就好,也是要看伺服器等級。 假設調成 10000,也真的有同時 10000 的量,可能會演變成  CUP High  的問題。 因此,這個欄位沒有建議值,網站封包量很大才有需要調整這個欄位。 啟動模式 (Start Mode) 預設值是  OnDemand ,當網站執行回收後,會等到第一個 Request 進來,IIS 才會把網站啟動。 所以第一個連上來的使用者會等到比較久的時間,ASP.NET 初始化完成後,使用者才會得到回應。 建議設定成  AlwaysRunning ,當網站執行回收後,IIS 就會直接啟動 ASP.NET。 2. 回收 (Recycling) 固定時間間隔 (Regular Time Interval) 預設值是  1740 ,也就是每隔 29 小時 IIS 就會把該網站重啟。 很可能重啟當下使用者正在操作,對於要 24 小時不中斷的系統來說,這真的是很不妥當的事情。 如果 ASP.NET 的 Session Mode 是用 InProc,網站重啟使用者就全被登出了。 建議設定成  0 ,也就是關閉定期重啟網站的設定。 如果網站真的需要定期重啟,可以在 特定時間 (Specific Times)  設定,固定每天哪些離峰時間做重啟的動作。 3. 快速失敗保護 ...

[財務]ATR指標

ATR 指標的原文是 Average True Range ,原文的意思是「平均真實區域」指標,所謂的真實區域,其實指的是真實的股價「波動」區域.這個指標也是威爾德( Wilder )所發明的 . 在計算 ATR 指標時,要先算出 TR (True Range) 這個數列, TR 有一個明確的定義 ,  它指的是在以下三個 數字 中最大的那個數字:1 .  今日最高價減最低價   ; 2.  今日最高價減昨日收盤價的絕對值; 3.  今日最低價減昨日收盤價的絕對值.   TR( 在此指的是今天股價真正的波動範圍 ) 之所以這樣設計的原因在於: 1. 如果今天股價跟昨天相比沒有劇烈漲跌,那麼今天的波動範圍就是今日最高價減去今日最低價; 2. 如果今天大盤是跳空上漲,而且這個空沒有被回補,那麼如果還是以今高減今低當作今天價格的波動幅度,那顯然就遺漏了跳空上漲的部份,所以要將那部份加回來,所以今天 TR 就是今日最高價減去昨日收盤價; 3. 如果今天大盤是跳空下漲,而且這個空沒有被回補,那麼如果還是以今高減今低當作今天價格的波動幅度,那顯然就遺漏了跳空下跌的部份,所以要將那部份加回來,所以今天 TR 就是今日最低價減去昨日收盤價的「絕對值」.注意,我們對真正的波幅都是取「正值」. 所以我們可以將 TR 寫成下式:    1.  TR  t    = MAX (  (H t - L t  )  ,  (   H t - C t-1 )   ,  (   L t -C t-1 )  ) 接著取  TR  的 N 日簡單平均值 TRma  ;   再將 TRma  取 N 日的 KD 式平滑即可 . 2.  TRma  t   = Sum of ( TR  t    )  /  N1  (...

[asp.net] IIS Http/2 cause asp.net MVC Error

最近遇到個怪問題, 所有使用者連線新開發的網站,就有單單有個使用者 開啟網站時 直接出現asp.net 要設定web.config errorModel的錯誤畫面, 就算主機的web.config都設定過一輪 也還是單單他的chrome瀏覽主機會出錯, 仔細想了很多原因都找不到主因 但最後查到可能是chorme執行http/2的連線而asp.net mvc的應用程式執行http1.1連線, 似乎對接不起來,所以試著調整IIS設定 移除http/2的設定 似乎就可以順利連線了 但真的原因是這樣嗎? 說實在的我也很難確定 如何移除IIS http2的設定 方法如下 Discovered two new registry settings for HTTP.SYS in: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters EnableHttp2Tls   REG_DWORD   0 EnableHttp2Cleartext   REG_DWORD   0

[.Net] EF 無法載入指定的中繼資料資源(Unable to load the specified metadata resource)

參考保哥的這份說明 關於 Entity Framework 獨立放在 DAL 專案的注意事項 主要是去修改連線字串的 metadata //-- 若你的  CSDL 、 SSDL  與  MSL  三個檔案是設定內嵌在輸出組件中,你就必須在設定 Entity Framework 連線參數時將上述  metadata  標注  *  的部分修改成 組件名稱 ,這樣就能正確載入 Entity Framework 了,如下範例: metadata=res:// 組件名稱 /AdventureWorksLT.csdl | res:// 組件名稱 AdventureWorksLT.ssd l | res:// 組件名稱 /AdventureWorksLT.msl; provider=System.Data.SqlClient; provider connection string="Data Source=.\sqlexpress;Initial Catalog=AdventureWorksLT;Integrated Security=True;MultipleActiveResultSets=True"

[Excel] PASSWORD protection of Excel file.

由於NPOI無法做到excel加密的功能, 所以在網路上找了一下,發現有兩個元件可以用 1. Microsoft.Office.Interop.Excel 2. Excel Jetcell .NET Microsoft.Office.Interop.Excel 是標準的MS套件,但使用上不是很好用,而且並不支援asp.net的環境使用 所以最後選了 Excel Jetcell .NET  作為使用的套件 用法很簡單 ExcelWorkbook Wbook = new ExcelWorkbook(); //Add new worksheet to workbook. Wbook.Worksheets.Add("Sheet1"); Wbook.Worksheets[0].Cells["A1"].Value = "sample XSL writing"; Wbook.Options.Password = "123";  //Set password //Write .xls file. MemoryStream ms = Wbook.WriteXLS(); string FileName = "test.xls"; return File(ms.ToArray(), "application/vnd.ms-excel", FileName);

[windows] 自建WSUS Client設定

1 執行gpedit.msc 開啟[本機群組原則編輯器] 2.選擇[本機電腦原則]>[電腦設定]>[系統管理範本]>[windows元件]>[windows update] 3.選擇[指定近端內部網路Microsoft更新服務的位置] 4.設為[已啟用],並設定[設定偵測更新的近端內部網路更新服務]與[設定近端內部網路統計伺服器]到自己架設的WSUS主機 設定參數如:http://Your_domain_or_ip:8530

[IIS]force HTTPS using a web.config file

   自架的IIS 要先安裝這個套件   URL Rewrite   如果在azure上的app就不需要   然後在web.config下的 [system.webServer] 區段   填入以下內容    [rewrite]       [rules]         [rule name="HTTP to HTTPS redirect" stopprocessing="true"]           [match url="(.*)"]           [conditions]             [add ignorecase="true" input="{HTTPS}" pattern="off"]           [/add][/conditions]           [action redirecttype="Found" type="Redirect" url="https://{HTTP_HOST}/{R:1}"]         [/action][/match][/rule]       [/rules]     [/rewrite]

[Bootstrap] Bootstrap suppor IE8

使用 html5shiv.js 可以讓 IE6 IE7 IE8 支援 HTML5 標籤的 JavaScript,下載網址: https://github.com/aFarkas/html5shiv 使用 css3-mediaqueries.js 可以讓不支援 Media Queries 的瀏覽器透過 Javascript 的方式也能支援。 https://code.google.com/p/css3-mediaqueries-js/ Bootstrap的官網提到,IE8 和 IE9 是有支援的,但是,很多CSS3属性和HTML5元素 -- 例如,圓角矩形和投影 -- 卻是沒有支援的。因此,IE8 需要Respond.js的配合才能實現對媒體查詢(media query)的支持。 http://getbootstrap.com/getting-started/#support-ie8-ie9 https://github.com/scottjehl/Respond

[Azure] asp.net upload file to Azure

Dim connstr As String = String.Format("DefaultEndpointsProtocol=https;AccountName={0};AccountKey={1};", accountName, accountKey) Dim storageAccount As CloudStorageAccount = CloudStorageAccount.Parse(connstr) '//建立 Blob 服務用戶端 '//CloudBlobClient 類別可擷取 Blob 儲存體中儲存的容器和 Blob Dim blobClient As CloudBlobClient = storageAccount.CreateCloudBlobClient() '//依照名稱找尋容器 Dim container As CloudBlobContainer = blobClient.GetContainerReference(containerName) '//如果容器不存在就建立 container.CreateIfNotExists() '//設定容器權限權限 container.SetPermissions(New BlobContainerPermissions With {.PublicAccess = access}) Dim tempF as new HttpPostedFileBase Dim blockBlob As CloudBlockBlob = container.GetBlockBlobReference(tempF.FileName) blockBlob.Properties.ContentType = tempF.ContentType Dim ms As MemoryStream tempF.InputStream.CopyTo(ms) ms.Seek(0, SeekOrigin.Begin) '使用MemoryStream 務必要使用seek 將指標回到起點 blockBlob.UploadFromStream(ms) Dim Url As String = blockBlob.StorageUri....

[Azure] Azure SQL server Create New User

In Master DB create New Query CREATE LOGIN [userName] WITH PASSWORD=N'password' CREATE user [userName] FOR LOGIN [userName] WITH DEFAULT_SCHEMA=[dbo] ALTER ROLE dbmanager ADD MEMBER [userName] In your taget DB create New Query CREATE user [userName] FOR LOGIN [userName] WITH DEFAULT_SCHEMA=[DBName ] EXEC sp_addrolemember N'db_owner', N'userName'