在实际的开发当中,相信很多的开发者在开发调试ASP.NET网站时候都是直接通过Visual Studio工具的编译运行来调试的。

一般情况下,这种调试方式也不会有多少问题,但有时候我们会发现这样的一个情况,就是明明在本地调试运行都没有问题的网站,部署到服务器IIS上,就出现无法描述的线上问题。这时候,就要排除服务器环境是否跟本地环境一样,其中一点还要涉及到IIS的配置的排除。

那问题来了,我们能不能在开发的时候,就部署在IIS上调试,而不是直接使用Visual Studio的运行调试,这样涉及到IIS配置的相关问题就能及早的暴露出来,比如IIS用户的权限调用等。举个很典型的例子,如我们调用微软的Office Excel组件导出Excel的时候,就需要设置IIS用户组对Com组件的调用权限。

在开发阶段就通过IIS对网站进行调试,可以避开很多因为IIS设置问题而导致的问题。

下面来说下配置IIS调试的步骤。

第一步   打开你的IIS管理器,没有安装IIS服务器的请上网百度如何安装,此处不再阐述。在IIS中新建一个网站,给定一个主机域名为test.com,并将网站目录指向你web项目的根目录,如下图。

第二步  网站配置的应用程序池很关键,上图中的应用程序池的名字叫testWeb,那这个应用程序池的.NetFrameWork的版本号应该跟你项目中使用的版本一致。我们点击上图左侧的菜单【应用程序池】,打开应用程序池列表,选中testWeb名称的应用程序池,确认编辑好该程序池的版本号。如下图

第三步  确保你的IIS的状态为正在运行而非停止的状态,并且确认你网站的状态以及网站对应应用程序池的状态为正在运行。

第四步  设置本地电脑的Host文件,配置本地域名test.com。让浏览器识别test.com域名的指向是本地计算机。(此步骤非常关键,不然你在浏览器中输入test.com会告知你无法解析)

我们在电脑的C盘中查找系统的Host文件,Host文件一般在以下路径中:C:\Windows\System32\drivers\etc。

找到Host文件后,用文本编辑器打开host文件,推荐使用notepad++文本编辑器。打开后,我们在最后一行加入127.0.0.1   test.com即可,配置完成后保存(Win10系统可能无法编辑保存,我们一般采取复制文件出来,编辑完成后覆盖回原文件),在浏览器中输入test.com即可指向本地IIS中的网站,即你刚才配置的网站。

第五步  此时配置完毕后,我们在自己本地电脑的浏览器中输入test.com的时候,就会指向你本地IIS配置的test.com网站中,即你当前开发的网站。

第六步  如果test.com网站测试中发现相应的问题,我们就可以通过附加IIS进程的方式对网站进行调试。当然调试的方式与之前不同了,此时就不是直接点击Visual Studio中的调试按钮或者F5进行调试了。我们可以通过下面的方式进入调试模式,选择菜单栏上的调试,打开子菜单选中附加到进程,如下图(当然可以通过快捷键Ctrl+Alt+P直接调取出附加界面)

打开后的附加界面如下图,我们找到w3wp.exe进程,然后点击附加按钮即可。

附加完成后,你就可在代码中加入相应的断点调试了,在前台浏览器中输入test.com访问出现的错误,你可在Visual Studio中找到对应代码段加入断点。

通过上述步骤,即可很好的进行网站的调试,IIS相应的配置问题也能及早发现。

最后,附上我的IT技术学习群,欢迎各位同行入群指导交流。技术群:872894940

更多文章可以关注博主个人站点:IT技术小趣屋

使用IIS调试ASP.NET网站程序的更多相关文章

  1. C# -- HttpWebRequest 和 HttpWebResponse 的使用 C#编写扫雷游戏 使用IIS调试ASP.NET网站程序 WCF入门教程 ASP.Net Core开发(踩坑)指南 ASP.Net Core Razor+AdminLTE 小试牛刀 webservice创建、部署和调用 .net接收post请求并把数据转为字典格式

    C# -- HttpWebRequest 和 HttpWebResponse 的使用 C# -- HttpWebRequest 和 HttpWebResponse 的使用 结合使用HttpWebReq ...

  2. 如何利用IIS调试ASP.NET网站程序详解

    如何利用IIS调试ASP.NET网站程序详解 更新时间:2019年01月13日 08:44:13   作者:江湖逍遥    我要评论   这篇文章主要给大家介绍了关于如何利用IIS调试ASP.NET网 ...

  3. 调试ASP.NET网站IIS环境问题解决方法汇总

    调试网站时出现错误,错误如下: 1. 分析器错误消息: 创建 RewriterConfig 的配置节处理程序时出错: 无法生成临时类(result=1).error CS2001: 未能找到源文件“C ...

  4. IIS下Asp.Net应用程序多进程设置及Session共享

    背景: 目前项目中在单个进程的应用程序经常会遇到w3c.exe崩溃的情况,于是就设想是否可以通过IIS多进程的方案来避免出现该问题. 于是搜了下“怎么实现多进程的方案”,找到了这篇文章:http:// ...

  5. IIS调试ASP.NET Core项目

    IIS调试ASP.NET Core项目 新建一个ASP.NET Core Web项目,选择API模板或随便一个模板都行 新建一个名为localhost的发布(没试过远程主机,或许也可以),主要设置如下 ...

  6. iis添加asp.net网站,访问提示:由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射

    今天在iis服务器配置asp.net网站,遇到一个问题,记录一下: 问题:由于扩展配置问题而无法提供您请求的页面.如果该页面是脚本,请添加处理程序.如果应下载文件,请添加 MIME 映射. Windo ...

  7. ASP.Net网站程序在编译发布部署后的后期修改

    ASP.Net网站程序在发布部署后的后期修改 作者:东篱南山 这里说的后期修改是指网站编译发布并部署好之后,对程序进行的修改,即在不能更改现有代码的情况下,更改页面的显示或是更改业务逻辑.一般是在程序 ...

  8. Win10下通过IIS调试ASP程序遇到的问题和解决方案

    最近维护了以前别人的写的一个ASP的系统,记录一下调试过程中的问题和解决方案. 环境篇 万维网发布服务(W3SVC)已经停止 问题: 万维网发布服务(W3SVC)已经停止.除非万维网发布服务(W3SV ...

  9. 通过IIS调试ASP.NET项目

    当我们使用Visual Studio调试的时候,通常我们会选择VS自带的ASP.NET Developerment Server(也是默认选项),当第一次调试的时候(按F5或Ctrl+F5不调试直接打 ...

随机推荐

  1. python+pycharm环境搭建

    1.下载python安装包 https://www.python.org/downloads/ 2.下载pycharm安装包. https://www.jetbrains.com/pycharm/do ...

  2. OC重写init方法

    在创建一个对象的时候我们经常会用到init方法,单单是init只能是初始化,当我们在初始化的时候想要给这个对象加上默认的东西的时候, 系统提供的init方法就不能满足我们的需要,这时,就需要我们自己去 ...

  3. python3+redis问题求解

    学生管理系统   更新学生信息没做出来,找个大神补全下.谢谢. # 记录: # bug:操作后若退出需要两次退出才行. 待修复 # 下一步:链接redis进行使用. # 更新学生库信息 待完成 imp ...

  4. Android开发者的Anko使用指南(二)之Dialogs

    在项目中使用Anko Dialogs dependencies { compile "org.jetbrains.anko:anko-commons:$anko_version" ...

  5. CCNA学前基础一

    网络设备: 集线器:集线器就是一种采用共享式工作状态的设备.Hub将信号放大后传输给其他端口,即传输线路是共享的. 交换机:用于连接终端设备,和基本的安全功能还有广播域的隔离.优点实现多用户同时访问, ...

  6. 【.NET Core项目实战-统一认证平台】第四章 网关篇-数据库存储配置(2)

    [.NET Core项目实战-统一认证平台]开篇及目录索引 上篇文章我们介绍了如何扩展Ocelot网关,并实现数据库存储,然后测试了网关的路由功能,一切都是那么顺利,但是有一个问题未解决,就是如果网关 ...

  7. Git的初步学习

    前言 感谢! 承蒙关照~ Git的初步学习 为什么要用Git和Github呢?它们的出现是为了用于提交项目和存储项目的,是一种很方便的项目管理软件和网址地址. 接下来看看,一家公司的基本流程图: 集中 ...

  8. 第55节:Java当中的IO流-时间api(下)-上

    Java当中的IO流(下)-上 日期和时间 日期类:java.util.Date 系统时间: long time = System.currentTimeMillis(); public class ...

  9. 提纲挈领webrtc音频处理算法之写在前面的话

    最近工作用到了webrtc,发现webrtc是个宝库,里面有很多东西值得好好研究. 搜了这方面不少资料,发现介绍使用webrtc的不少,但是针对里面一些算法研究的 不多.特别是能把算法说的简洁明了的更 ...

  10. 比较empty()与 isset()d的区别

    比较empty()与 isset()的区别 注意:empty()在PHP5.5之前只能检测变量 isset()只能检测变量 两者之间的联系:empty($var) 等价于 !isset($var)|| ...