如何 5 秒內判斷 SQL Server 是否需要更新修正程式才支援 TLS 1.2

情境: 程式連結 SQL Server 時會出現錯誤訊息:     例外類型: SqlException     例外訊息: 與伺服器的連接已成功建立,但在登入程序時發生錯誤。 (provider: SSL Provider, error: 0 – 用戶端和伺服器無法溝通,因為它們沒有公用的演算法。) 判斷方式: SQL Server 2014 SP2 (12.0.5000.0) 或是更新版本即支援 TLS 1.2 , 無需要安裝修正程式. 另外需要安裝修正程式的資訊請參考: https://support.microsoft.com/zh-tw/help/3135244/tls-1-2-support-for-microsoft-sql-server Enjoy. Jacky  

0

使用 lock 取代 MethodImplOptions.Synchronized

情境: ASP.NET 的網站忽然某一個功能會出現 System.Threading.SynchronizationLockException 其它都是正常. 錯誤訊息: System.Threading.SynchronizationLockException: Object synchronization method was called from an unsynchronized block of code. 測試: 測試發現如果使用MethodImplOptions.Synchronized,若thread進入執行並故意abort掉,可以重現.SynchronizationLockException。 若改用lock則不會發生問題 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Runtime.CompilerServices; using System.Text; using System.Windows.Forms; using System.Threading;   namespace LockDemo {     public partial class Form1 : Form     {         public Form1()        …

0

如何 列出 SQL Server 資料庫 的使用者權限

情境: 列出資料庫使用者權限清單 語法: USE <Database Name> GO DECLARE @Obj VARCHAR(4000) DECLARE @T_Obj TABLE (UserName SYSNAME, ObjectName SYSNAME, Permission NVARCHAR(128)) SET @Obj=’ SELECT Us.name AS username, Obj.name AS object,  dp.permission_name AS permission FROM sys.database_permissions dp JOIN sys.sysusers Us ON dp.grantee_principal_id = Us.uid JOIN sys.sysobjects Obj ON dp.major_id = Obj.id ‘ INSERT @T_Obj EXEC sp_MSforeachdb @Obj SELECT…

0

如何 讓 桌面程式的設定檔(exe.config) 加密後, 可以在不同機器執行

情境: 客戶有一個 桌面程式(exe) 的 設定檔(exe.config) 中有連線到資料庫的帳號及密碼, 把它加密保護後, 無法在 Windows Cluster 不同結點(機器) 上移動後正常執行. 如果是在第一個結點做了加密設定, 當 Cluster 移動到第二個結點後, 程式一執行即會出現錯誤, 無法解密連線字串. 做法:  我用一個 .NET 4.0 的 exe 測試步驟如下:  在 Config 檔中的 <configuration> 區段 加入  <configProtectedData >     <providers>         <add name=”ConnectionProvider” type=”System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a” keyContainerName=”connectionKey”/>     </providers>   </configProtectedData> 在 Server 上建立這個 key Container        …

0

使用 PowerShell 設定伺服器的 應用程式集區 預設值

  ForEach ($sComputer in $global:aComputers) { # Sets Application Pool Configuration Write-Host “Setting Application Pool Configuration $sComputer…”; Start-Timer Write-Host ”  1. 啟動模式 由 OnDemand => AlwaysRunning.” set-webconfigurationproperty /system.applicationHost/applicationPools/applicationPoolDefaults  -name startMode -value 1 Write-Host ”  2. 佇列長度改為5000.” set-webconfigurationproperty /system.applicationHost/applicationPools/applicationPoolDefaults  -name queueLength -value 5000 Write-Host ”  3. 停用 Idle Time 設定 (20 分鐘) => 改為 0″ set-webconfigurationproperty…

0

使用 PowerShell 安裝 IIS

三個步驟: 以管理員身份開啟 PowerShell import-module servermanager add-windowsfeature Web-Server, Web-WebServer, Web-Security,Web-Filtering,Web-Windows-Auth,Web-Basic-Auth,Web-Common-Http,Web-Http-Errors,Web-Static-Content,Web-Default-Doc,Web-Performance,Web-Stat-Compression,Web-Dyn-Compression,Web-Health,Web-Http-Logging,Web-Log-Libraries,Web-Request-Monitor,Web-Http-Tracing,Web-App-Dev,Web-Net-Ext45,Web-Asp-Net45,Web-WebSockets,Web-AppInit,Web-Mgmt-Tools,Web-Mgmt-Console   上述的模組說明請參考: Modules in IIS 8.5 https://docs.microsoft.com/en-us/iis/install/installing-iis-85/installing-iis-85-on-windows-server-2012-r2#modules-in-iis-85  

0

Windows 2016 出現 0xc0000135 ServerManager.exe 無法開啟

問題描述: ============ 將 Windows Server 2016 IIS 及 .NET Framework 都移除後, Server Manager 及事件檢視器… 等都無法開啟 錯誤訊息如下:     解決方式: ============ 用 DISM 指令先將 .NET Framework 安裝後, 即可以正常開啟 Server Manager dism /online /enable-feature /featurename:NetFx4    HTH. Jacky

0

免費的跨平台輕量SQL Server 資料庫管理工具 – SQL Operations Studio

SQL Operations Studio 是一個免費跨平台的工具來管理 SQL Server、 Azure SQL Database 和 Azure SQL 資料倉儲,它可以執行在 Windows、 macOS 和 Linux 。 它有整合式終端機的功能:在SQL Operations Studio 使用者介面中整合式終端機視窗內使用命令列工具 (例如, Bash、PowerShell、 sqlcmd、 bcp,和 ssh) 。 安裝資訊請參考: https://docs.microsoft.com/zh-tw/sql/sql-operations-studio/download Enjoy. Jacky

0

用 WMI 查詢一個服務是否執行, 若不是把它執行

以 SQL Server Agent 為例, 服務名稱可以自行替換 Option Explicit Dim objWMIService, objService, strComputer,strService strService=”SQLSERVERAGENT” strComputer = “.” Set objWMIService = GetObject(“winmgmts:” _ & “{impersonationLevel=impersonate}!\\” & strComputer & “\root\cimv2”) For Each objService In objWMIService.ExecQuery(“Select * from Win32_Service Where Name = ‘”_ &strService&”‘”) If objService.State <> “Running” Then objService.StartService End If Next WScript.Quit   Enjoy. Jacky

0

如何移轉 IIS 上大量的應用程式集區及網站到另一台機器

Application Pool 匯出所有 App Pool指令: %windir%\system32\inetsrv\appcmd.exe list apppool /config /xml > D:\temp\apppools.xml 匯入所有App Pool指令: %windir%\system32\inetsrv\appcmd.exe add apppool /in < D:\temp\apppools.xml Web Site 匯出所有 Web Site指令: %windir%\system32\inetsrv\appcmd.exe list site /config /xml > D:\temp\sites.xml 匯入所有 Web Site指令: %windir%\system32\inetsrv\appcmd.exe add site /in < D:\temp\sites.xml Enjoy. Jacky

0