今天在用Visual Studio调试Web程序时,突然出现下面这个错误:

Unable to start debugging on the web server. The Microsoft Visual Studio Remote Debugging Moniter (MSVSMON.EXE) does not appear to be running on the remote computer...

如下图所示:

msvsmon_err

起先以为是VS的问题,重启了好几次,但是点击调试按钮的时候仍然是这个提示信息。百思不得其解,因为这个项目下午的时候还可以调试,一直没有人碰过电脑,没改过代码也没装过软件,到晚上的时候就报错了。
不得己Google之,发现下面的解决方案:修改注册表中的DisableLoopbackCheck项,修改方法见参考链接。 重启电脑后问题依旧,最后努力思索从下午到晚上这段时间都做过哪些操作可能会导致影响。看错误信息,感觉是服务端口被占用之类的问题,但是这段时间确实没有安装或启动过什么服务。然后想到可能是配置文件的错误导致,继而突然意识到晚上在写代码之前,用SVN Update了下代码,查看SVN日志,发现有人提交了*.csproj.user文件,查看这个文件的变更。
老的配置文件如下:

<UseIIS>True</UseIIS>
<UseCustomServer>False</UseCustomServer>
<CustomServerUrl></CustomServerUrl>

修改后的代码如下:

<UseIIS>False</UseIIS> 
<UseCustomServer>True</UseCustomServer>
<CustomServerUrl>http://www.test.com/</CustomServerUrl>

原来是因为团队内有人不喜欢VS自带的http://localhost:4738/这个URL,便使用修改hosts文件的方式,将www.test.com指向127.0.0.1,并在VS的Web配置中选择了"Use Custom Web Server",这样URL确实好看了不少。 但是问题是:这个文件的提交直接导致了我浪费了一晚上的时间。
最后在VS的Web配置中改回默认的"Use IIS Express",问题解决(其实参考链接中也有人回答了该解决方法,只是我一开始没有注意到...),如下图所示:

web_server_config

教训总结:

  1. 任何一点小小的操作都可能导致意想不到的问题,要留心自己的每一个操作,并注意检查每个操作可能带来的影响;
  2. 绝对不要提交私人的配置文件到SVN服务器,譬如这里的*.csproj.user文件,应该加到ignore列表中。

参考

VS2010 error: Unable to start debugging on the web server

扫描二维码,在手机上阅读!