Jef*_*eff 3 c# asp.net iis asp.net-mvc azure
我已经设法使用本地IIS Web服务器来托管我的MVC3应用程序,我可以从托管它的机器上调试它和所有东西.- 但是,当我从另一台机器(我的Mac,在Parallels VM中运行我的Windows)发送请求时,我得到了预期的结果,但调试器不会停在我的断点处!
我尝试添加一个Debugger.Break();
到我的操作,并崩溃w3wp.exe ..
To,总结一下:本地请求正在运行,可以调试.外部请求正在运行,但无法进行调试.
在我的项目的属性,我设置的Use Local IIS Webserver
,Use IIS Express
是未经检查.
我正在使用Visual Studio 2012 Professional.该项目是基于Azure SDK的,附加的进程是WaIISHost.exe.
Jef*_*eff 10
问题是,由于我已将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
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用您的PC名称,以避免在DHCP为您提供新地址时分配静态IP或更改配置:
Jeff-PC 8080 127.0.0.1 81
Run Code Online (Sandbox Code Playgroud)
然后,打开命令提示符,并打开cd
您的rinetd文件夹,然后运行rinetd.exe -c config.cfg
.
奇迹般有效.
我可以看到远程请求由IIS提供,但是本地的请求通过"Cassini"服务器或visual studio的服务器提供.
确保您使用IIS来调试代码,您可以将visual studio附加到w3wp.exe以通过IIS进行调试.你应该以管理员身份启动visual studio.
将Visual Studio附加到w3wp.exe(IIS进程):从visual studio,从调试菜单中选择"Attach to process ...":
选中"显示所有用户的进程".
选中"在所有会话中显示进程".
按选择按钮从(附加到.)中选择"托管(v ....)代码".
按"刷新"按钮
应该显示w3wp.exe!
归档时间: |
|
查看次数: |
9479 次 |
最近记录: |