Posts
>-
Web Deploy 是一 client-server 架構的工具程式,能用來同步 IIS 內容與設定,簡化網頁應用程式或是網站的佈署。 具有以下幾個特點:
與 IIS Manager、Visual Studio 無縫整合,能建立 package 並佈署到本地或是遠端機器 整合 WebMatrix 與 Web Platform Installer 無縫整合 網頁應用程式打包 – 能夠打包網頁應用程式或是整個站台,包含關聯的資料庫 – 能夠打包 ACLs、COM、GAC 與註冊檔設定 – 支援 live 伺服器與壓縮後的 package 當成來源或是目的端 網頁應用程式佈署 – 支援非 Admin 權限的網頁應用程式佈署 – 支援參數化佈署,能在佈署時替換檔案中的字串 – 整合 IIS Web Management Service 做非 Admin 的佈署 網站伺服器同步 – 能夠同步整個網頁伺服器、網頁站台、或是網頁應用程式 – 只同步變動的資料 – 能夠在同步時偵測遺失的 dependencies – 同步時自動收集 IIS 設定、SSL certificates、與 ASP.NET 設定 變動前自動備份站台 – 管理員可以設定啟用自動備份 – 使用者可以直接還原站台 支援 CommandLine、PowerShell Cmdlets、與 API Web Deploy 在運作上如下圖所示:
read morePosts
Web Deploy - Install setup web deploy
Web Deploy 程式可至微軟網站下載。
下載完點擊安裝。
安裝類型建議選取 Custom,確認一下要安裝的元件。
這邊的元件有 IIS Manager UI 模組,安裝完會將 Web Deploy 部分功能整合在 IIS Manager。比較重要的需要確認 Management Service 與 Remote Agent Service 的安裝狀況,因為 Web Deploy 佈署時可能會走這兩條路 ,所以需要視需要將之勾選安裝。
如果剛有選取 Manager Service 或是 Remote Agent Service,安裝完就可以看到系統內會有新增對應的服務(Web Management Service 與 Web Deployment Agent Service),我們需要確保服務是正常啟用的。
除了確定服務啟動外,也可以開啟瀏覽器訪問 http://localhost/MSDEPLOYAGENTSERVICE 去驗證 Remote Agent Service 是否正常運作。
至於 Manager Service 這邊,可以開啟 IIS Manager 的 Management Service。
確定這邊的 Enable remote connections 是勾選的,以及 Port 號正確,若不修改就是走預設的 8172 Port。
如果要使用非 Admin 權限佈署,可以開啟 IIS Manager Permissions。
read morePosts
Web Deploy - Generate Web Deploy package with MsBuild
要使用 MsBuild 建置 Web Deploy package,可以在 MsBuild 建置時用 /t:package 告知要產生 Web Deploy package,並帶上 PackageLocation 參數指定產出的 Package 放置位置。
msbuild <ProjectFile|SolutionFile> /p:Configuration=<Configuration>; Platform="<Platform>"; PackageLocation="<PackageLocation>" /t:package 建置完成就可以在指定的位置看到產出的 Web Deploy package。
read morePosts
Web Deploy - Generate Web Deploy package with Visual Studio
要使用 Visual Studio 建立 Web Deploy package,首先在方案總管的專案上按下滑鼠右鍵,點選 Publish... 滑鼠右鍵選單選項。
在 Publish Web 視窗中選取 Cuetom Profile。
設定 Profile 的名稱。
接著 Publish method 選定 Web Deploy Package,設定 Package 放置的位置以及要佈署的站台名稱。
再來選定要建置的 Configuration。
進行發佈。
發佈完成就可以在指定的位置看到產出的 Web Deploy package。
read morePosts
Web Deploy - Publish with MsBuild
要使用 MsBuild 建置專案並佈署,可以在 MsBuild 建置時帶上 DeployOnBuild 參數告知 MsBuild 在建置完要做佈署,並帶上 PublishProfile 參數指定要使用的 Publish Profile。
msbuild <ProjectFile|SolutionFile> /p:Configuration=<Configuration>; Platform="<Platform>"; DeployOnBuild=true; PublishProfile=<PublishProfile> 若有需要可加帶 UserName 參數指定帳號,加帶 Password 參數指定密碼。
msbuild <ProjectFile|SolutionFile> /p:Configuration=<Configuration>; Platform="<Platform>"; DeployOnBuild=true; PublishProfile=<PublishProfile>; UserName=<UserName>; Password=<Password> 或是加帶其他參數,像是加帶 EnableMSDeployAppOffline 參數使用 AppOffline rule 做佈署,讓 Web deploy 在做發佈的同時幫你放上 App_Offline 頁面。
msbuild <ProjectFile|SolutionFile> /p:Configuration=<Configuration>; Platform="<Platform>"; DeployOnBuild=true; PublishProfile=<PublishProfile>; UserName=<UserName>; Password=<Password>; AllowUntrustedCertificate=True; EnableMSDeployAppOffline=true
read morePosts
Web Deploy - Publish with Visual Studio
要直接用 Visual Studio 使用 Web Deploy 去做佈署,首先在方案總管的專案上按下滑鼠右鍵,點選 Publish... 滑鼠右鍵選單選項。
在 Publish Web 視窗中選取 Cuetom Profile。
設定 Profile 的名稱。
接著 Publish method 選定 Web Deploy,設定要佈署的 Server 及帳號資訊。
再來選定要建置的 Configuration。
若想在發佈前查看一下會做哪些更動,可透過預覽的功能查看。
沒問題就可以進行發佈的動作。
read morePosts
Visual Studio - Exception of type 'Phx.FatalError' was thrown
如果 Visual Studio 出現 “Exception of type ‘Phx.FatalError’ was thrown” 這樣的錯誤。
可以重新註冊 dll 來修復這問題,不同版本的 Visual Studio 需要註冊不同的 dll。
Visaul Studio Command Visual Studio 2010 regsvr32 “%ProgramFiles(x86)%\Microsoft Visual Studio 10.0\Common7\Packages\Debugger\msdia100.dll” Visual Studio 2012 regsvr32 “%ProgramFiles(x86)%\Microsoft Visual Studio 11.0\Common7\Packages\Debugger\msdia110.dll” Visual Studio 2013 regsvr32 “%ProgramFiles(x86)%\Microsoft Visual Studio 12.0\Common7\Packages\Debugger\msdia120.dll” Visual Studio 2015 regsvr32 “%ProgramFiles(x86)%\Microsoft Visual Studio 14.0\Common7\Packages\Debugger\msdia140.dll” 像是筆者出問題的是 Visual Studio 2015,所以要像下面這樣註冊。
註冊完問題就排除了。
Link Error in FxCop Phoenix analysis engine - Stack Overflow FxCop error CA0001 on build server – Altug Sahin’s Blog
read morePosts
sql-cli - Cross platform command line interface for SQL Server
sql-cli 是一命令列的 SQL Server 工具。
透過 npm 安裝到全域即可使用。
npm install -g sql-cli 使用方式如下:
Usage: mssql [options] Options: -h, --help output usage information -V, --version output the version number -s, --server <server> Server to conect to -u, --user <user> User name to use for authentication -p, --pass <pass> Password to use for authentication -o, --port <port> Port to connect to -t, --timeout <timeout> Connection timeout in ms -d, --database <database> Database to connect to -q, --query <query> The query to execute -v, --tdsVersion <tdsVersion> Version of tds protocol to use [7_4, 7_2, 7_3_A, 7_3_B, 7_4] -e, --encrypt Enable encryption -f, --format <format> The format of output [table, csv, xml, json] -c, --config <path> Read connection information from config file 其中 -s 可用來指定 SQL Server 位置,-u 用來指定帳號,-p 用來指定密碼。像是若要連入本機的 SQL Server,其 sa 的密碼為 pass.
read morePosts
SQL Server v.Next - Run the SQL Server Docker image
要使用 Docker 運行 SQL Server v.Next,首先要先確定下列環境需求:
Docker Engine: 1.8+ Disk space: Minimum of 4 GB RAM: Minimum of 4 GB Docker 引擎需要在 1.8 以上的版本,硬碟空間最小要 4 GB,記憶體最小要有 4GB。
記得要調整設定讓 Docker 吃到 4 GB 的記憶體。
接著將 microsoft/mssql-server-linux 這個 Docker image 拉下來。
sudo docker pull microsoft/mssql-server-linux 拉下來後可以像下面這樣將 Container 運行起來,SA_PASSWORD 需要自行修改後帶入。
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=<YourStrong!Passw0rd>' -p 1433:1433 -d microsoft/mssql-server-linux 若是要將資料庫的資料保留下來,可以在 Container 運行時加掛資料卷。
sudo docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=<YourStrong!Passw0rd>' -p 1433:1433 -v <host directory>:/var/opt/mssql -d microsoft/mssql-server-linux 叫用命令 docker ps 查驗是否 Container 有正常運行。
read morePosts
ASP.NET Core - Building Projects with Yeoman
要使用 Yeoman 去建立 ASP.NET Core 專案,首先需安裝 Yeoman 與 bower。
npm install -g yo bower 再來要安裝 ASP.NET generator。
npm install -g generator-aspnet ASP.NET generator 安裝完後,透過 Yeoman 叫用 ASP.NET generator。
yo aspnet 選取要使用的應用程式範本。
設定應用程式名稱,Yeoman 就會幫我們建立應用程式專案。
應用程式專案建立完整個目錄結構會像下面這樣:
到這邊就可以開啟專案來開發應用程式了,開發完成,我們可以還原會使用到的套件。
dotnet restore 然後將應用程式運行起來看看 (dotnet run 會順帶運行 dotnet build,這種情況下 dotnet build 可省略不調用)。
dotnet build dotnet run Link Building Projects with Yeoman Creating a new ASP.NET Core project using Yeoman · asp.net core from the ground up
read more