星期三, 12月 14, 2022

Visual Studio 2022 離線安裝

建立離線安裝 - Visual Studio (Windows) | Microsoft Learn

參考 Microsoft 的網站介紹,下載

 https://aka.ms/vs/17/release/vs_community.exe

之後,就是打開命令提示字元

切換到剛剛檔案存放資料夾後,輸入

vs_community.exe --layout e:\vs2022 --lang en-US

接著就是漫長的等待了,整套 VS 2022 Community 版本下載完成後包含 vs_community.exe 有 38.5GB,官方說 Visual Studio 的完整本機配置至少需要 45 GB 的磁碟空間,看來是版本的差異。

真的是下載要等很久。


接著複製到要安裝的機器後,一樣開啟命令提示字元,切換到資料夾後輸入

E:\VS2022>vs_Community.exe --noweb

選擇要安裝的套件後,就可以開始等待安裝完成了





星期二, 11月 15, 2022

第一次進派出所筆錄

派出所使用的資訊系統跟流程有很大的改進空間

2022/11/14 晚上在大安森林公園跑完步要走去騎機車回家的路上,在馬路上發現一個打開的短夾躺在道路中央,剛好紅燈沒車經過趕緊把它撿起來然後打電話報警。

19:55 立刻拿起手機撥打 110 後,告知在市民大道涮涮鍋信義店前馬路上撿到皮夾,電話那頭回覆會通知派出所與我聯絡。於是我就站在原地等待

19:59 新生派出所來電,詢問我是否時送到派出所,於是我就送過去了。

誰知,這才是驚訝的開始。

1. 因為撿到的短夾內有持有人的身份證明證件,所以對方一定會來領回,我也沒想過要等六個月要領走,本來以為留資料詢問一下就可以了,沒想到,超過一萬元現金,是要做筆錄的。

(都已經有證件了,為什麼清點完後第一時間不是通知失主,而是跟撿到的人做筆錄 )

2. 在警察清點完現金跟證件後,連悠遊卡也要把金額寫到筆錄中,但派出所並沒有讀卡工具,悠遊卡公司電話我看警察打了又沒人接,最後他只好跑一趟捷運站(便利商店)去查詢餘額。

(悠遊卡公司的難道不能提供卡號查詢餘額功能讓警察作業方便一點嗎? 用卡號查詢餘額,應該沒有個資的問題吧)

3. 做筆錄時,失物送派出所招領,這種很標準的過程,我本來以為會是一個系統,沒想到是打開 Word 進行筆錄,而且因為是 Word,所以在輸入我的身分證字號後,又要開始輸入個人基本資料,這樣都是身分證上的,跟內政部都是一樣有的資料。 

(難道資訊連接這麼困難嗎? 警察的工作都已經夠忙了,還要練打字嗎?)

最後,離開派出所,已經是半小時過了,跑完步的我又渴又餓,只想趕快回家。


星期二, 10月 04, 2022

C# string split by multi delimiters

以前要處理兩種以上的分隔符號就必須跑迴圈處理,突然想到查詢看看是否有新的方式處理,


//舊方法

string test1 = "a,b;c,d;e,f;g";


List<string> list1 = test1.Split(',').ToList();


List<string> result = new List<string>();


foreach(string split1 in list1)

{

result.AddRange(split1.Split(';').ToList());

}


foreach(string split2 in result)

{

Console.WriteLine(split2);

}


Console.WriteLine("---New one---");

//新方法

string[] delimiters = {",",";" };

result = new List<string>();

result = test1.Split(delimiters, StringSplitOptions.RemoveEmptyEntries).ToList();


foreach(string split2 in result)

{

Console.WriteLine(split2);

}



星期一, 9月 19, 2022

隱藏 Devexpress Report 的 Parameter Panel

 為了避免下次又要找半天,趕緊紀錄一下過程。

在程式的後端已經設定好報表檔內的 Parameter,但 Parameter Panel 還是都會跳出來,



最後才知道,只要將 Parameter 的 Visible 都設定成 False 就不會跳出 Parameter Panel


星期五, 7月 29, 2022

IIS: Request Entity Too Large

把一個很吃資源的 WCF 服務從 IIS 7.0 升級到 IIS 8.0,就壞掉了,找了一下才知道有設定要調整

其實很簡單,就是 IIS 的設定調整變大,Web.Config 新增設定 maxAllowedContentLength 就可以了


從 IIS 中選擇站台,點選設定編輯器


區段的部份選擇 system.webServer/serverRuntime 後,將 uploadReadAheadSize 調整為 49152。

接著在 Web.Config 新增

<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="1073741824" />
</requestFiltering>
</security>
</system.webServer>

星期五, 5月 20, 2022

Hyper-V 降版本

在 Windows 10 建立的 Hyper-V 版本太新,建置完成後搬移虛擬機伺服器執行就遇到版本不相容的問題


Windows Server 2016 只支援到 8.0 的版本


最後只好先手動建立一個空的虛擬機



燒香拜佛祈禱把 Virtual Disk 掛載調整設定後就可以開機使用



果然,在兩邊設置都一樣的情況下,即便版本不一樣,也是順利開機成功認真工作。 




星期五, 2月 18, 2022

設定 IIS Log 定期更新

 IIS Log 留太多也只是佔用空間,最好的方式就是用排程定期刪除

用 VBScript 來進行 30 天前的資料刪除


sLogFolder = "c:\inetpub\logs\LogFiles"  'IIS Log 存放資料夾

iMaxAge = 30   'in days

Set objFSO = CreateObject("Scripting.FileSystemObject")

set colFolder = objFSO.GetFolder(sLogFolder)

For Each colSubfolder in colFolder.SubFolders

        Set objFolder = objFSO.GetFolder(colSubfolder.Path)

        Set colFiles = objFolder.Files

        For Each objFile in colFiles

                iFileAge = now-objFile.DateCreated

                if iFileAge > (iMaxAge+1)  then

                        objFSO.deletefile objFile, True

                end if

        Next

Next


將上面 Script 存檔後,設定每天執行的排程,即可完成每天刪除 30 天以前的 IIS Log


參考文章: Prevent IIS log files from using too much disk space on Windows Server | Computerworld

星期二, 12月 28, 2021

SQL Server Transaction Log 還原

將  bak 檔與 trn 檔複製到另一台 SQL Server 測試還原的步驟

選擇 bak 與 trn 檔案,剩下就跟一般還原一樣選擇處理







星期四, 9月 09, 2021

WCF 回傳為錯誤

在本機測試都沒問題,放上正式環境後就掛掉,最後只好把 Web.Config 開啟紀錄來看看

在 system.web 加入了紀錄 Trace 的功能

<system.diagnostics>
    <sources>
      <source name="System.ServiceModel.MessageLogging" switchValue="Warning, ActivityTracing">
        <listeners>
          <add name="ServiceModelTraceListener" />
        </listeners>
      </source>
      <source name="System.ServiceModel" switchValue="Verbose,ActivityTracing">
        <listeners>
          <add name="ServiceModelTraceListener" />
        </listeners>
      </source>
      <source name="System.Runtime.Serialization" switchValue="Verbose,ActivityTracing">
        <listeners>
          <add name="ServiceModelTraceListener" />
        </listeners>
      </source>
    </sources>
    <sharedListeners>
      <add initializeData="App_tracelog.svclog" type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="ServiceModelTraceListener" traceOutputOptions="Timestamp" />
    </sharedListeners>
  </system.diagnostics>

在同一資料夾就會有 App_tracelog.svclog 這個檔案產生,成長速度飛快,我才紀錄 2 天就大到  2G 了,還好已經紀錄到我要看的,趕緊將記錄功能從 Web.Config 中移除。

使用 Microsoft Service Trace Viewer 就可以開啟,沒有也有可以記事本,只是很難閱讀。

最後才發現,原來這次我的調整用了新的 DataTable 但是沒給 TableName 造成的。

呼~~~虛驚一場。



星期五, 8月 27, 2021

App_tracelog.svclog 太大

上次清 WCF Log 應該是一年前了吧,全部加起來有兩千多個檔案,佔去快 100G 空間,
其中主要那個還佔了 85.3G。

我會先到 Web.Config 中把 App_tracelog.svclog 紀錄先改掉,刪除檔案,再改回 App_tracelog.svclog

      <add initializeData="App_tracelog.svclog" type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="ServiceModelTraceListener" traceOutputOptions="Timestamp" />