今天日了gou了,一大早打开VS2017的时候出现无法连接到Web服务器“IIS Express”的错误,然后必应了一下,再谷歌了一下找到的解决方法也都千篇一律,奈何都没能解决,最后通过静下心来的思考,尝试解决了问题,特此记录一下,可能没有第二个人会遇到跟我相同的问题了吧!先上问题截图:
问题回顾
首先附上我的操作系统版本,
vs2017是15.9.9的版本
.net core 是2.2的版本
早上打开vs2017尝试调试asp.net core应用程序的时候出现上述错误,然后我就尝试使用 Powershell然后运行dotnet run
来运行,没有抱任何错误,但是使用浏览器访问的时候却死活打不开网站。按理说没错误,打开网站应该没问题啊~但是就是死活打不开,一直提示无法访问。于是开启了必应,以及谷歌之路的问题搜索之路。
千篇一律的解决方案
只要你网上搜索,基本的解决方法都是一致的,可能网上的解决方法适用于大多数人,奈何不适用我的问题。我先把网上千篇一律的解决方案给大家罗列下:
升级下vs2017到最新的版本,排除可能因为vs版本BUG不一致导致的问题。
保证你配置的iis express运行的URL一致,如下图所示:
关闭项目以及vs,然后把解决方案根目录下面的隐藏文件 .vs 文件夹给干掉
重新以管理员身份运行vs2017并运行项目。
删除Docement/IIS Express文件夹里面的全部内容。
卸载IIS Express重新安装
卸载vs2017进行安装(这个我没试,当我傻嘛,这个太耗时间,耗不起)
我能跟你说我找到的大多数答案都是上面的内容嘛,更有甚者让我重启下电脑,我不会跟你说我重启了快10次电脑了,问题也还是没有解决。
最后没法,按照如下设置使用iis进行调试而不是借助iis express。这个的确能调试程序并能打开网站了。如下所示设置:
但是太他吗的不优雅了,而且如果你继续用dotnet run
运行程序的话,控制台输出是没有错误的,但是这时候你去访问网站的话,依然打不开你的网站。怎么办呢?
奇葩的解决方法
怎么办呢?vs2017不能直接结合iis express调试了,瞬间整个人都不好了,这时候我就开始回忆,我昨天对电脑做了什么事情?
不就是对电脑进行了优化,把防火墙以及其他的几个服务给关掉了嘛。那会不会是因为防火墙的原因导致的问题呢?
死马当活马医吧,于是我把防火墙的服务给开启了,然后,然后我就想骂街了,尼玛,真的,真的好了,vs2017又能愉快的跟iis express一起调试玩耍了。
这时候我就在想是不是巧合呢?于是我又把防火墙给关闭了,再次使用vs2017+iis express进行调试,擦,问题重现了,
我再次开机启动防火墙,然后重启下电脑,这个错误又消失了。
你说奇葩不奇葩。
因此断定这次我的电脑出现的上述错误情况的根本原因就是关闭了防火墙服务导致的,你说奇葩不奇葩。
另外需要注意的一点是,我的情况并不一定适用于所有人,可能你的问题只需要按照前面的那几个方法就能解决了。没有我的情况这么奇葩。
最后
编程千万条,本分第一条,优化不规范,奇葩问题现。谨以此篇文章献给喜欢过度优化电脑的你。