1. 程式人生 > >ASP.NET開發中修改程式碼而不重啟網站

ASP.NET開發中修改程式碼而不重啟網站

我們在做網站開發的時候,通常是寫好了一個功能就要進行測試,Visual Studio上點“Start Debugging”(快捷鍵是F5),這是除錯模式,也有直接執行模式,“Start Without Debugging”(快捷鍵是Ctrl+F5),網站啟動,並且預設會開啟一個瀏覽器視窗讓你看到結果,假如這個時候你發現點問題,需要調整程式碼……

對於非*.cs檔案

如果是cshtml、aspx、ashx或asmx這類非C#檔案(*.cs),不管是除錯模式還是非除錯模式,直接點儲存,就生效了,網站一重新整理頁面,第一次訪問到它們,它們就會自動被編譯,重新生成可執行程式碼。

對於*.cs檔案(除錯模式下)

如果你嘗試在除錯中修改cs檔案,會得到這麼一個錯誤提示:

你得先把程式暫停了,才能對它進行修改,暫停的辦法有兩種,一種是斷點,程式跑到斷點處就自動暫停了,另一種是直接點“Break All”(快捷鍵是Ctrl+Alt+Break),暫停了程式,就可以對cs檔案進行修改了,修改好之後,點一下“Continue”(快捷鍵F5),就生效了,神奇的是:你甚至不需要點儲存。

當然了,這還得有個前提,就是你的Visual Studio開啟了這個選項:

如果沒開啟這個選項的話,你在除錯中可以繼續編輯C#程式碼,可以儲存,但不會生效。

對於*.cs檔案(非除錯模式下)

你可以直接修改cs檔案,沒有任何問題,儲存,看看是否起作用?——答案是否。因為承載著你的程式的容器——IIS Express並不知道你修改了原始碼,你需要重新編譯一下,點一下“Build Solution”(快捷鍵F7),然後就生效了。當然對非ASP.NET程式來說,這招行不通,因為程式執行時,EXE檔案是防寫的,這跟ASP.NET程式的執行原理不一樣。

希望通過這幾種方式,能夠提高大家的網站開發效率。

使用dotnet watch

對於.NET Core程式來說,還有另外一種方法,就是使用“Microsoft.DotNet.Watcher.Tools”工具。在專案的csproj中加入這麼一行:

<DotNetCliToolReference Include="Microsoft.DotNet.Watcher.Tools" Version="2.0.0" />

接下來在專案的目錄下(也就是csproj所在的目錄下),執行一次dotnet restore(這個不用每次都執行),然後執行dotnet watch run。程式就跑起來了。

接下來你對C#程式碼的修改都會被Watcher觀察到,並自動編譯你的程式碼和重啟你的程式,這個過程不需要你額外自己去Build和Run,當然你程式如果有錯,它也會顯示出來Build失敗,失敗的話不會重啟程式,繼續跑著舊版。

由於需要開啟命令列介面,所以總感覺有點麻煩,速度嘛,相比前面提起的手動Build Solution,好像也快不去哪裡。用不用自己看。

相關推薦

ASP.NET開發修改程式碼網站

我們在做網站開發的時候,通常是寫好了一個功能就要進行測試,Visual Studio上點“Start Debugging”(快捷鍵是F5),這是除錯模式,也有直接執行模式,“Start Without Debugging”(快捷鍵是Ctrl+F5),網站啟動,並且預設會開啟一個瀏覽器視窗讓你看到結果,假如這個

ASP.NET開發主要的字元驗證方法-JS驗證、正則表示式、驗證控制元件、後臺驗證

在ASP.NET開發中主要的驗證方法收藏 <1>使用JS驗證 匹配中文字元的正則表示式: [\u4e00-\u9fa5] 匹配雙位元組字元(包括漢字在內):[^\x00-\xff] 備註:可以用來計算字串的長度(一個雙位元組字元長度計2,ASCII字元計1) 匹配空白行的正則表示式:\n\s

Asp.net MVC傳遞ViewData資料能正確傳遞的問題

再次經歷MVC中兩個DropDownList中一個通過ViewData或ViewBag傳遞資料自動選擇出現問題的情況,也就是資料沒有被正確傳遞,debug 了4 hours,媽的,怎麼除錯怎麼沒有錯誤,把資料通過json顯示也沒有錯,但是就是在partialView中就是不

asp.net頁面實現如果圖片存在則顯示預設圖片

在ASP.net開發中如果想要實現圖片找不到時顯示預設圖片的功能,我們有以下幾種方法: 1.js 可以獲得頁面上每個image標籤的物件。然後再設定它的src屬性就ok了。 程式碼  <script> function window.onload() {

ASP.NET MVC使用JS實現對稱加密密碼傳輸

摘要:ASP.NET MVC中登入頁面中點選登入後,使用者名稱、密碼將被明文傳輸到Controller中,使用Fiddler等工具可以輕鬆截獲並獲取密碼, 這是不安全的。 使用對稱加密,如AES,金鑰將被暴露前端程式碼,也是不安全的。使用不對稱加密能夠較好解決這個問題。本文

【springboot】spring boot修改程式碼後無需設定,在開發時實現熱部署

熱部署是什麼 大家都知道在專案開發過程中,常常會改動頁面資料或者修改資料結構,為了顯示改動效果,往往需要重啟應用檢視改變效果,其實就是重新編譯生成了新的Class檔案,這個檔案裡記錄著和程式碼等對應的各種資訊,然後Class檔案將被虛擬機器的ClassLoader載入。 而熱部署正是利用了這

spring boot修改程式碼後無需設定,在開發時實現熱部署

熱部署是什麼大家都知道在專案開發過程中,常常會改動頁面資料或者修改資料結構,為了顯示改動效果,往往需要重啟應用檢視改變效果,其實就是重新編譯生成了新的Class檔案,這個檔案裡記錄著和程式碼等對應的各種資訊,然後Class檔案將被虛擬機器的ClassLoader載入。而熱部署

spring boot在Eclipse修改程式碼後無需就生效的配置

在Eclipse中啟動spring boot專案後,如果修改了程式碼,預設是需要重啟專案才能生效。如果想不重啟也生效,可以這樣配置: 只需要在pom.xml檔案中,加入下面的<dependenc

JavaWeb程式修改配置檔案伺服器的方法

1. 配置tomcat伺服器:修改tomcat的部署配置為:從不自動釋出,禁用Web模組的自動從新裝入為:禁用 2. 在tomcat執行配置上新增vm引數:-noverify -javaagent:D:\RUNTIME\jrebel\jrebel.jar -Dmyproject.root=D:/pro

Jetty插件實現熱部署(開發修改文件自動Jetty)

max www. nbsp 很遺憾 pom als ati mave 重啟 在pom.xml文件中配置Jetty插件的參數:scanIntervalSeconds <plugin> <grou

Linux_Linux 修改hostname 且也能生效

文地址: http://www.2cto.com/os/201304/206862.html Linux下不重啟永久修改hostname 1、如果只是修改hostname可以通過如下命令 hostname newHostname 注意:這種修改方式只有當前有效,等伺服器

IntelliJ IDEA 在使用manven後的糾結(每次修改程式碼都要tomcat才能看效果嗎?),請各位大俠來看看問題

在加入manven後每次都要從其tomcat 或者重新package才能看到修改的效果這樣對於程式原來說很瘋狂,反正我是快瘋了,都不想用manven了 。 直接上圖: 上圖為沒用manven之前的專案 project Structure的配置也在,每次直接編譯 在tomca

hotswapagent——熱更新程式碼無需生產環境

coding階段,我們習慣於以debug模式執行程式,享受即時更新程式碼而無需重啟服務的高效開發速度。遺憾的是,無論是ide的debug模式,還是jdk1.4+的instrument機制,都只能做到修改

ASP.Net Core 使用列舉類是列舉

前言:我相信大家在編寫程式碼時經常會遇到各種狀態值,而且為了避免硬編碼和程式碼中出現魔法數,通常我們都會定義一個列舉,來表示各種狀態值,直到我看到Java中這樣使用列舉,我再想C# 中可不可以這樣寫,今天就分享一下我的感悟。   一、通常我們是這樣使用列舉的 (1)switch中使用列舉

關於為啥ASP.Net C# ListBox選中事件一直生效的問題

sel nat csharp page topo edi auto sharp 關於 在pageLoad方法中進行綁定了listbox的值,一定要寫在 if (!IsPostBack) { } 這個裏面 並且!!!!一定要設置 <asp:ListBox ID="

Asp.net MVC CodeFirst 開發模式例項

  昨天寫的這篇部落格因為下班時間到了忘記儲存了,好鬱悶,得重新寫一遍。實習所在公司使用的是CodeFirst開發模式,最近開始參與到公司的專案裡面來了,發現這個模式特別好用,建庫建表改變欄位屬性新增刪除欄位等等操作都無需自己在資料庫動手操作,只需要編寫程式碼即可實現,著實是方便了許多。今天來記錄一下如何使用

ASP.NET 網頁的嵌入式程式碼塊 與

<% %>是嵌入程式碼塊 ,而<%= %>是嵌入表示式 我們都知道,Response.Write 方法能將資訊寫入HTTP輸出內容資料流,而嵌入表示式可以作為呼叫Response.Write方法的快捷方式。 比如:<%="好嗎"%> 和&

ASP.NET開發過程遇到GET請求中文引數亂碼問題的解決辦法

直接上程式片碼 頁面請求部分 (使用 encodeURI方法轉換中文請求內容 ) : var URL = "http://localhost:8080/index.aspx?keyword=" + encodeURI($("#_keyword").val()); 後臺接

MyEclipseweb開發修改類檔案和配置檔案伺服器的方法

在java web實際開發中我們在修改配置檔案與java程式碼時往往會重新部署或者重新啟動tomcat伺服器,為了提高開發效率,現總結以下方法以在網路共享(高手莫看)  一 、修改struts2配置檔案不用重啟方法 方法1:  在src目錄下新建一個檔案struts.pro

ASP.NET動態載入Js程式碼到Head標籤(三種方法)

方法一程式碼如下: HtmlGenericControl Include2 = new HtmlGenericControl("script"); Include2.Attributes.Add("type", "text/javascript"); Include2.InnerHtml = "alert('