要调试已部署到IIS的ASP.NET应用程序,请在部署应用程序的计算机上安装并运行远程工具,然后从Visual Studio附加到正在运行的应用程序。

下面介绍如何设置和配置Visual Studio ASP.NET MVC 4.5.2应用程序,将其部署到IIS,以及如何从Visual Studio附加远程调试器。

01 系统必备

Visual Studio 2019 需按照本文中所示的步骤。

这些服务器配置上进行了测试这些过程:

  • Windows Server 2012 R2 和 IIS 8 (对于 Windows Server 2008 R2 中,服务器,步骤会有所不同)
02 网络要求
从 Windows Server 2008 Service Pack 2 的 Windows Server 支持远程调试器。 有关要求的完整列表,请参阅要求

不支持调试通过代理连接的两台计算机之间。 调试通过高延迟或低带宽连接,例如拨号 Internet,或通过 Internet 跨国家/地区不建议并可能会失败或很令人无法接受慢。

03 应用程序已在IIS中运行?
本文包括在Windows服务器上设置IIS的基本配置以及从Visual Studio部署应用程序的步骤。包括这些步骤以确保服务器已安装所需的组件,应用程序可以正确运行,以及您已准备好进行远程调试。
  • 如果在 IIS 中运行您的应用程序,并且只是想要下载远程调试器和启动调试,请转到下载并安装 Windows Server 上的远程工具

  • 如果需要帮助,确保您的应用程序设置已完成,部署,并正确运行在 IIS 中,以便可以调试,请按照本主题中的所有步骤。

04 在Visual Studio计算机上创建ASP.NET 4.5.2应用程序
  1. 创建新的 MVC ASP.NET 应用程序。

    在 Visual Studio 2019,键入Ctrl + Q若要打开搜索框中,键入asp.net,选择模板,然后选择创建新 ASP.NET Web 应用程序 (.NET框架) 。 在显示对话框中,该项目命名MyASPApp,然后选择创建。 选择MVC ,然后选择创建。

  2. 打开 HomeController.cs 文件,并在 About() 方法中设置断点。

安装和 Windows Server 上配置 IIS

以下步骤演示了基本配置的 IIS。 有关详细信息或安装到 Windows 桌面计算机,请参阅发布到 IISIIS 8.0 使用 ASP.NET 3.5 和 ASP.NET 4.5

对于 Windows Server 操作系统,使用添加角色和功能通过向导管理链接或仪表板中的链接服务器管理器. 在“服务器角色”步骤中,选中“Web 服务器(IIS)”框 。

在“角色服务”步骤中,选择所需 IIS 角色服务,或接受提供的默认角色服务 。 如果你想要启用部署使用的发布设置和 Web 部署,请确保IIS 管理脚本和工具处于选中状态。

继续完成安装 web 服务器角色和服务的确认步骤。 安装 Web 服务器 (IIS) 角色后无需重启服务器/IIS。

05 更新Windows Server上的浏览器安全设置

如果在 Internet Explorer (默认情况下已启用) 中启用了增强的安全配置,您可能需要将某些域添加为受信任的站点,以便可以下载某些 web 服务器组件。 添加可信的站点,通过转到Internet 选项 > 安全性 > 受信任的站点 > 站点。 添加以下域。

  • microsoft.com
  • go.microsoft.com
  • download.microsoft.com
  • iis.net

下载软件时,可能会显示请求授予权限以加载各种 web 站点脚本和资源。 以下一些资源不是必需的但若要简化此过程中,单击添加出现提示时。

06 在Windows Server上安装ASP.NET 4.5

如果你想要在 IIS 上安装 ASP.NET 的更多详细的信息,请参阅IIS 8.0 使用 ASP.NET 3.5 和 ASP.NET 4.5

  1. 在服务器管理器的左窗格中,选择IIS。 右键单击服务器并选择“Internet Information Services (IIS)管理器” 。

  2. 使用 Web 平台安装程序 (WebPI) 安装 ASP.NET 4.5 (从 Windows Server 2012 R2 中的服务器节点,选择获取新的 Web 平台组件,然后搜索 ASP.NET)

    如果使用 Windows Server 2008 R2,安装 ASP.NET 4 改为使用此命令:

    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir

  3. 重启系统(或在命令提示符处依次执行“net stop was /y”和“net start w3svc”,了解系统路径的更改) 。

07 选择部署选项

如果您需要帮助将应用部署到 IIS,请考虑这些选项:

  • 通过在 IIS 中创建的发布设置文件和导入 Visual Studio 中的设置部署。 在某些情况下,这是一种将应用部署的快速方法。 创建发布设置文件时,权限自动将会在 IIS 中设置。

  • 部署发布到本地文件夹并将输出的首选方法复制到 IIS 上的已准备好应用程序文件夹。

08 (可选)使用发布设置文件进行部署
09 (可选)部署发布到本地文件夹
10 下载并安装 Windows Server 上的远程工具
11 设置 Windows Server 上的远程调试器
12 从 Visual Studio 计算机附加到 ASP.NET 应用程序
  1. Visual Studio 计算机上,打开要调试的解决方案 (MyASPApp在您按照这篇文章中的步骤)。

  2. 在 Visual Studio 中,单击调试 > 附加到进程(Ctrl + Alt + P)。

    在 Visual Studio 2017 和更高版本中,您可以重新附加到您以前使用附加到的同一个进程调试 > 重新附加到进程... (Shift + Alt + P)。

  3. 将限定符字段设置为 <远程计算机名称> 然后按Enter。

    验证 Visual Studio 将所需的端口添加到计算机名称,将出现在格式: <远程计算机名称>:端口

    在 Visual Studio 2019,你会看到 <远程计算机名称>:4024

    端口是必需的。 如果看不到的端口号,请手动添加它。

  4. 单击“刷新” 。 “可用进程” 窗口中将显示某些进程。

    如果看不到任何进程,请尝试使用的 IP 地址而不远程计算机名称 (端口是必需的)。可以使用ipconfig获取 IPv4 地址的命令行中。

  5. 勾选“显示所有用户的进程” 。

  6. 键入进程名称,可以快速找到的第一个字母w3wp.exe为 ASP.NET 4.5。

    如果有多个进程显示w3wp.exe,检查用户名列。 在某些情况下,用户名列显示你的应用程序池名称,如IIS APPPOOL\DefaultAppPool。 如果你看到应用程序池标识正确的进程的简单办法是创建一个新应用池命名为你想要调试的应用程序实例,然后您可以找到它轻松地在用户名列。

  7. 单击“附加”

  8. 打开远程计算机的网站。 在浏览器中,转到 http://<remote computer name> 。

    将显示 ASP.NET 网页。

  9. 在运行的 ASP.NET 应用程序,单击链接到有关页。

    应在 Visual Studio 中命中断点。

13 故障排除:Windows Server 上打开所需的端口
 在大多数设置中,通过安装ASP.NET和远程调试器来打开所需的端口。但是,您可能需要验证端口是否已打开。

在Azure VM上,您必须通过网络安全组打开端口。

所需端口:

  • 80 - IIS必需
  • UDP 3702 - (可选)在Visual Studio中附加到远程调试器时,发现端口使您可以使用“ 查找”按钮。
  1. 若要打开 Windows 服务器上的端口,请打开启动菜单中,搜索高级安全 Windows 防火墙。

  2. 然后选择入站规则 > 新规则 > 端口。 选择下一步并在特定本地端口,输入端口号,单击下一步,然后允许连接,单击下一步,和添加名称 (IIS, Web Deploy,或msvsmon) 的入站规则。

    如果您想配置 Windows 防火墙的详细信息,请参阅配置 Windows 防火墙以进行远程调试

  3. 创建其他规则中的其他所需的端口。

 

Visual Studio 调试系列12 远程调试部署在远程计算机IIS上的ASP.NET应用程序的更多相关文章

  1. Visual Studio 调试系列2 基本调试方法

    系列目录     [已更新最新开发文章,点击查看详细] 在 Visual Studio 上下文中,当调试应用时,这通常意味着你在附加了调试器的情况下(即在调试器模式下)运行应用程序. 执行此操作时,调 ...

  2. Visual Studio工具栏中无法选择调试设备

    Visual Studio工具栏中无法选择调试设备 在Visual Studio工具栏中,默认显示已经识别的设备.用户可以从中选择对应的设备,进行调试和部署App.但是由于误操作,可能导致该选项丢失. ...

  3. WebApi-路由机制 Visual Studio 2015中的常用调试技巧分享

    WebApi-路由机制   一.WebApi路由机制是什么? 路由机制通俗点来说:其实就是WebApi框架将用户在浏览器中输入的Url地址和路由表中的路由进行匹配,并根据最终匹配的路由去寻找并匹配相应 ...

  4. visual studio code(vscode) 调试php(转)

    原文链接:http://www.cnblogs.com/CLR010/p/5276077.html visual studio code(vscode) 调试php   1.下载vscode (vis ...

  5. 64 位win 7或windows 8下的visual studio不能连接Oracle数据库调试网站的问题

    在64 位win 7或windows 8系统下,visual studio直接F5运行网站调试,你会发现不能连接Oracle数据库,会报一个“ORA-06413: Connection not ope ...

  6. [转]使用 Minidumps 和 Visual Studio .NET 进行崩溃后调试

    本文关键字:Minidumps, Windows, SEH, VisualC, .NET 摘要 本文讲述了 minidumps 是怎样工作的.当你的程序崩溃的时候应该如何生成它们.以及如何在 Visu ...

  7. Visual Studio 2013 如何在停止调试Web程序后阻止IIS Express关闭

    vs2013 调试项目的时候,当停止调试的时候,端口就被断了.之前以为是IIS那边的控制问题,但是其他并行的项目运行都没有出现这种情况. 最初也没在意,直到现在实在忍受不了了,每次重开也太烦了.就去各 ...

  8. win2008server R2 x64 部署.net core到IIS上出现【Failed to load the dll from [C:\Program Files\dotnet\host\fxr\1.0.1\hostfxr.dll], HRESULT: 0x80070057】错误

    win2008server R2 x64 部署.net core到IIS上出现[Failed to load the dll from [C:\Program Files\dotnet\host\fx ...

  9. visual studio 2015下使用gcc调试linux c++开发环境搭建完整详解

    一直以来,相信绝大部分的开发都是windows/mac下做开发,尤其是非嵌入式和qt系的,而开源服务器程序绝大部分都是跑在Linux下,几乎就没有跑在windows下的.一直以来开发人员都是在wind ...

随机推荐

  1. docker容器的端口映射

    1.创建一个Nginx 容器,先不映射端口 [root@localhost ~]# docker run --name my_nginx -d nginx 7be3673a4c0f8f7ffe79a7 ...

  2. 【UOJ#75】【UR #6】智商锁(矩阵树定理,随机)

    [UOJ#75][UR #6]智商锁(矩阵树定理,随机) 题面 UOJ 题解 这种题我哪里做得来啊[惊恐],,, 题解做法:随机\(1000\)个点数为\(12\)的无向图,矩阵树定理算出它的生成树个 ...

  3. Pandas 学习 第9篇:DataFrame - 数据的输入输出

    常用的数据存储介质是数据库和csv文件,pandas模块包含了相应的API对数据进行输入和输出: 对于格式化的平面文件:read_table() 对于csv文件:read_csv().to_csv() ...

  4. PhaseScorer:感慨高手写的代码就是精炼

    看懂了PhaseScorer的算法后,回想起前面看的算法和代码,感慨高手写的代码总是那么精炼,没有一句废话,多一句不行,少一句不行.明天来了写下PhaseScorer算法的实现:todo

  5. flink 批量梯度下降算法线性回归参数求解(Linear Regression with BGD(batch gradient descent) )

    1.线性回归 假设线性函数如下: 假设我们有10个样本x1,y1),(x2,y2).....(x10,y10),求解目标就是根据多个样本求解theta0和theta1的最优值. 什么样的θ最好的呢?最 ...

  6. Fundebug前端异常监控插件更新至 1.9.0,支持监控 HTTP 慢请求

    摘要: 1.9.0新增 httpTimeout 配置选项,支持监控 HTTP 慢请求,同时修复了记录的 HTTP 响应时间偏小的 BUG. Fundebug提供专业的前端异常监控服务,可以第一时间捕获 ...

  7. 获得用户的真实ip HTTP_X_FORWARDED_FOR

    工作中经常会有有获得用户真实ip的情况,HTTP_X_FORWARDED_FOR总是忘记,所以我这里记录下来吧. 在PHP 中使用 [“REMOTE_ADDR”] 来取得客户端的 IP 地址,但如果客 ...

  8. odoo10学习笔记九:Odoo10 API

    转载请转载原文地址:https://www.cnblogs.com/ygj0930/p/11189315.html 一:纪录集API model中的数据是以集合的形式使用的,因此可以使用集合运算来操作 ...

  9. Linux内存管理(最透彻的一篇)【转】

    转自:https://www.cnblogs.com/ralap7/p/9184773.html 摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物 ...

  10. Linux /proc/$pid部分内容详解【转】

    转自:https://www.cnblogs.com/likui360/p/6181927.html auxv /proc/[pid]/auxv包含传递给进程的ELF解释器信息,格式是每一项都是一个u ...