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开发中修改代码而不重启网站的更多相关文章
- C#中??和?分别是什么意思? 在ASP.NET开发中一些单词的标准缩写 C#SESSION丢失问题的解决办法 在C#中INTERFACE与ABSTRACT CLASS的区别 SQL命令语句小技巧 JQUERY判断CHECKBOX是否选中三种方法 JS中!=、==、!==、===的用法和区别 在对象比较中,对象相等和对象一致分别指的是什么?
C#中??和?分别是什么意思? 在C#中??和?分别是什么意思? 1. 可空类型修饰符(?):引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空.例如:string str=null; ...
- ASP.NET开发中主要的字符验证方法-JS验证、正则表达式、验证控件、后台验证
ASP.NET开发中主要的字符验证方法-JS验证.正则表达式.验证控件.后台验证 2012年03月19日 星期一 下午 8:53 在ASP.NET开发中主要的验证方法收藏 <1>使用JS验 ...
- asp.net开发中常见公共捕获异常方式总结(附源码)
本文实例总结了asp.net开发中常见公共捕获异常方式.分享给大家供大家参考,具体如下: 前言:在实际开发过程中,对于一个应用系统来说,应该有自己的一套成熟的异常处理框架,这样当异常发生时,也能得到统 ...
- win7,vs2010,asp.net项目中修改外部js文件,在调试时加载的还是旧文件
win7,vs2010,asp.net项目中修改外部js文件,在调试时加载的还是旧文件 我杀过 w3wp.exe和asp.net_state的进程,重启 iis admin的服务,都还是不行. 只是把 ...
- asp.net5开发中DNX SDK版本的影响
某次asp.net5开发中遇到了一个很奇怪的问题,引用部分的nuget包没有显示任何错误,如下图: 但是编译时出现了几百个错误: 错误基本都是形如“CS0246 The type or namespa ...
- Android开发中使用代码删除数据库
更多信息参考:Android开发中使用代码删除数据库 在Android开发中,如果用到数据库,就会有一个很麻烦的问题,就是有时候需要删除数据库很麻烦,要打开Android Device Monitor ...
- 企业开发中选择logback而不是log4j的理由
不知道看到这篇文章的Java工程师有没有考虑过这个问题:为什么在企业开发中会选择logback来记录日志,而不是log4j呢? 如果你以前没有考虑过这个问题,那么现在如果让你考虑一下,你可能觉的会是因 ...
- ASP.NET WebForm中前台代码如何绑定后台变量
转载自 http://www.cnblogs.com/lerit/archive/2010/10/22/1858007.html 经常会碰到在前台代码中要使用(或绑定)后台代码中变量值的问题.一般有& ...
- STS热部署,springboot项目中修改代码不用重新启动服务
方法如下: 1.在pom文件中引入 devtools 依赖: <dependency> <groupId>org.springframework.boot</grou ...
随机推荐
- 在单用户模式下修改CentOS的root密码
我们在使用CentOS的过程中可能会发生忘记root用户密码的情况,本文就从应用的角度简单介绍一下如何在单用户模式下修改root用户的密码. 开启CentOS,进入系统启动菜单 将光标停留在系统开机时 ...
- JDK源码分析-String、StringBuilder、StringBuffer
String类的申明 public final class String implements java.io.Serializable, Comparable<String>, Char ...
- CentOS 6.2+Nginx+Nagios,手机短信和qq邮箱提醒
http://chenhao6.blog.51cto.com/6228054/1323192 标签:软件包 配置文件 nagios 服务端 监控 原创作品,允许转载,转载时请务必以超链接形式标明文章 ...
- 1. 开篇-springboot环境搭建
最初学习strurs2时,虽然觉得也挺好用的,但也有一些不便的地方:1. 模型绑定必须要在Action中声明对应模型的成员变量:2. Action中对外提供调用的接口必须明确注明:3. 要声明一大堆的 ...
- Firefox driver 那些事~
1. selenium 3.x开始,webdriver/firefox/webdriver.py的init中,executable_path="geckodriver":而2.x是 ...
- 在Mybatis-spring上基于注解的数据源实现方案
一.遇到的痛点 最近在学习Spring-boot过程中,涉及到操作数据库.按照DOC引入mybatis-spring-boot-starter,然后按照套路配置application.properti ...
- bzoj5250 [2018多省省队联测]秘密袭击
博主蒟蒻,目前还不会动态dp,所以下面说的是一个并不优秀的暴力,我会补的! 我们考虑按权值从大到小依次点亮每个点,相同权值可以同时点亮,每次点亮后,我们进行一次树形背包. 处理出$f[i][j]$表示 ...
- noip 2015 斗地主 大爆搜!!!
反正肯定是大模拟 但是每一个可以出的牌都搜一定不是最优的 考虑最特殊的出牌方案:顺子(单,对,三) 每一种方案再加上暴力贪心打出剩下的牌的步数 #include<cstdio> #incl ...
- BZOJ_4773_负环_倍增弗洛伊德
BZOJ_4773_负环 Description 在忘记考虑负环之后,黎瑟的算法又出错了.对于边带权的有向图 G = (V, E),请找出一个点数最小的环,使得 环上的边权和为负数.保证图中不包含重边 ...
- 一个优秀团队leader应该具备的几点素质
首先,技术要过硬.毕竟一个团队是在靠技术为别人创造价值的,一定程度上,团队leader的技术能力决定了整个团队的技术上限.leader对技术的坚持和追求很可能会影响团队成员对技术的坚持和追求,至少le ...