我已经设法使用本地 IIS Web 服务器来托管我的 MVC3 应用程序,并且我可以从托管它的计算机上调试它和所有内容。 - 但是,当我发送请求时从另一台机器(我的 Mac,在 Parallels VM 中运行 Windows),我得到了预期结果,但调试器不会在我的断点处停止!
我尝试将 Debugger.Break();
添加到我的操作中,这导致 w3wp.exe 崩溃..
总结一下:本地请求正在工作,并且可以调试。外部请求正在工作,但无法调试。
在我的项目属性中,我设置了使用本地 IIS Webserver
,使用 IIS Express
处于未选中状态。
我使用的是 Visual Studio 2012 Professional。该项目基于Azure SDK,附加进程为WaIISHost.exe。
最佳答案
问题是,由于我已将 IIS 服务器设置为在端口 83 上提供服务,而在本地我将在端口 81 上访问,因此调试器不会监视这些请求。
要解决此问题(或者通常是在 Cassini Web 服务器上远程调试),请下载一个名为 rinetd 的工具。 ,这是一个非常简单的流量重定向器守护进程,并在将其解压到的文件夹中创建一个 config.cfg 。格式为<source ip> <source port> <dest. ip> <dest port>
。因此,在我的 Mac 上,我在 Safari 中访问以下地址: 192.168.1.23:8080/Controller/Action ,然后该地址被重定向到 localhost:81/Controller/Action ,就好像它是本地请求一样!这是示例 config.cfg:
192.168.1.23 8080 127.0.0.1 81
或者,您可以使用您的 PC 名称,以避免在 DHCP 为您提供新地址时分配静态 IP 或更改配置:
Jeff-PC 8080 127.0.0.1 81
然后,打开命令提示符,然后 cd
到您的 rinetd 文件夹,然后运行 rinetd.exe -c config.cfg
.
就像魅力一样。
关于c# - 调试本地 IIS Web 服务器上托管的 ASP.NET MVC3 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13623450/