Unable to connect to web server 'IIS Express'(无法连接到Web服务器“IIS Express”)的解决方式-Jexus Manager
在运行微软示例工程eShopOnWeb时候, 在经过一段时间再运行启动报Error "Unable to connect to web server 'IIS Express'" (无法连接到Web服务器“IIS Express”). 网上搜索了一下发现
在依乐祝的博客中发现提到更改“属性-调试-启动”为IIS的替代方式解决无法运行问题, 但对于本人而言,仍然报错. 于是bing了一番. 发现有一国外博文使用Jexus Manager来解决该问题. 本人问题在安装该软件运行一次后解决.(惊!...)
不过该软件国内不太好下载. 于是在这里分享一下.
链接:
https://pan.baidu.com/s/1D_PNZpDDz3NMZObp6Cxe0A
提取码:
ygcc
[参考]
VS2017 无法连接到Web服务器“IIS Express”终极解决方案
https://www.cnblogs.com/yilezhu/p/10571618.html
[转自]
Peculiar case of "Unable to connect to web server 'IIS Express'"
https://codecultivation.com/peculiar-case-of-unable-connect-to-web-server-iis-express/
There was one particular ASP.NET Core project that I have left it for quite a long time. Therefore, I would need to refresh my memory in order to understand how it works by first running it in debugging mode in Visual Studio 2017. To my suprise, as soon as I pressed F5, there was a popup error as below:
Of course, like everyone else, I would first check my launchSettings.json
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:51841",
"sslPort": 44353
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"WebApplication5": {
"commandName": "Project",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "https://localhost:5001;http://localhost:5000"
}
}
}
It just looked fine for me. So, what could go wrong?
Method 1 (Remove .vs folder)
After searching in Google, quite a number of people suggesting to remove .vs folder from the project and let Visual Studio to auto generate the .vs folder (especially the applicationhost.config in config folder and it should work after that. It didn't work for me.
In case you ask where to find .vs folder, simply make sure to show hidden folder or files in Folder Options menu.
Method 2 (Run as administrator)
The second way that should work is to run Visual Studio as administrator. Simply right-click on Visual Studio shortcut and choose Run as administrator
However, I was not happy with both methods above. I think there must be some other hidden reason behind this.
Method 3 (Diagnostic approach)
First, I need to find out what if I can have some sort of log file or error message. Unable to connect to web server 'IIS Express' doesn't help. Visual Studio in this case didn't really help me much to give more information about this issue.
After doing some digging around on Internet, I came across a management console built for IIS Express called Jexus Manager that apparently provides some good diagnostic reports about your website.
To begin, choose the option Connect to a Server like below.
In Choose Server Type screen, make sure to choose Visual Studio IIS Express Configuration File like below.
And then, choose the targeted Visual Studio solution file (.sln) like below.
Make sure option From Visual Studio .vs folder is selected.
Simply click Finish button to complete the process.
Finally, I would see a new connection was created in Connections pane.
Normally, we could ignore the first WebSite1 as it is just a default website. Select the next website and I would see some options in Actions pane.
At first, all those Diagnostics reports didn't really help me much here. However, when I chose to Start the website (under Manage Website section), something interesting popped up.
Now, this was something interesting for me. I had to admit that I did not understand all those special numbers and process names, but fortunately the final two lines helped me to go further. Apparently, I could execute iisexpress.exe in Command Prompt to investigate further! At this point of time, I was happy and nervous at the same time as it proved my lack of knowledge on IIS Express but was happy to learn something new too.
Let's open Command Prompy and navigate to C:\Program Files\IIS Express. To start IIS Express, simply execute the command line below.
iisexpress.exe /config:"c:\[your project path]\.vs\config\applicationhost.config" /site:WebApplication5 /trace:error
The output in Command Prompt was as below.
Noticed that IIS Express complained it was failed to register URL "http://localhost:51841/" as access was denied. Subsequently, it was failed to register "https://localhost:44353/" as it cannot create a file when that file already exists. I knew that the first error message was a clue but I just couldn't understand why.
Also, I noticed that there was a notification popup from IIS Express too.
When clicked, I could see IIS Express Notifications screen.
The message in notification further clarified that I needed administrative privileges to bind to hostname or port and article Handling URL binding failures in IIS Express helped me alot in understanding how IIS Express handling URL binding. In this article, it clearly states that you need administrative privileges to configure HTTP.sys (an OS component that handles HTTP and SSL traffic for both IIS and IIS Express) for the following scenarios,
- Using reserved ports such as 80 or 443
- Serving external traffic
- Using SSL
To configure HTTP.sys, I needed to use netsh.exe utility. After going thru the article, I noticed that it has alot to do with urlacl switch. urlacl stands for URL Access Control List which creates reservation for particular group of users. You can read more about it here.
At this point, I was interested to find out the list of reservation entries in my computer by running netsh http show urlacl
and I saw something like this below.
To my surprise, I managed to find one entry with Reserved URL: http://*.51841/
How on earth could that happen!? I presume only administrator could do that and I don't think Visual Studio will be able to add the entry by itself. After some intense investigations, I laughed at myself as the culprit was me myself all this time. Why? It was a leftover from my previous article How to access your localhost website from external LAN? I should have done the cleanup after the article. I created a problem from my own solution!
At the end, I simply removed the entry from the reservation list and IIS Express started to work fine again. The command line is as below.
netsh http delete urlacl url=http://*:51841/
Conclusion
In the end, I was having alot fun while investigating the problem and I was glad to manage to solve the issue by diagnostic approach. First, quick (temporary) solution is not a good solution, I should always aim for permanent solution. Next, it is always important to keep learning while solving problems as it would further improve my understanding. Last but not least, cleanup process is super important if you don't want to have any (not so pleasant) surprises and it's always a best practise to restore to original state after you have done the work.
Unable to connect to web server 'IIS Express'(无法连接到Web服务器“IIS Express”)的解决方式-Jexus Manager的更多相关文章
- Unable to connect to zookeeper server within timeout: 5000
错误 严重: StandardWrapper.Throwable org.springframework.beans.factory.BeanCreationException: Error crea ...
- Caused by: org.I0Itec.zkclient.exception.ZkTimeoutException: Unable to connect to zookeeper server within timeout: 5000
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'brandControl ...
- 解决loadrunner录制时 Request Connection: Remote Server @ 0.0.0.0:80 (Service=?) NOT PROXIED! (REASON: Unable to connect to remote server: rc = -1 , le = 0)问题
环境为win7+ie8+loadrunner11,录制脚本回放查看Recoding log 出现如下错误:[Net An. Error ( 7f8:1340)] Request Connecti ...
- org.I0Itec.zkclient.exception.ZkTimeoutException: Unable to connect to zookeeper server within
org.I0Itec.zkclient.exception.ZkTimeoutException: Unable to connect to zookeeper server within timeo ...
- CentOS7图形界面启动报错unable to connect to X server
以前还可以正常启动图形界面,这次启动失败,报错unable to connect to X server 使用的是oracle用户,因为我是在oracle用户下创建的oracle数据库等 解决办法: ...
- Message Unable to connect to SQL Server '(local)'
最近在sql server 加了一些job,但是run job的时候发生了一下错误: ssage Unable to connect to SQL Server '(local)' 问题根源:调用 T ...
- Unable to connect to the server: x509: certificate signed by unknown authority
0x00 Problem 在使用二进制搭建 k8s 集群的过程中,使用 kubectl get 等操作时始终显示 x509: certificate signed by unknown authori ...
- SSMS 远程连接SERVER 设置 - Unable to connect to SQL Server instance remotely
问题描述: 新装了一台SERVER,在SERVER本地打开SSMS链接sever,一且正常.但是用我自己local去链接的时候出现以下错误. A network-related or instance ...
- 在启动dubbo框架时报错。Unable to connect to zookeeper server within timeout: 5000
这是因为zookeeper服务没有启动,所以会报错超时.只要启动zookeeper就行了. zookerper的启动很简单的,网上随便搜搜都有.
随机推荐
- MySQL学习——操作视图
MySQL学习——操作视图 摘要:本文主要学习了使用DDL语句操作视图的方法. 了解视图 是什么 视图是从一个.多个表或者视图中导出的表,包含一系列带有名称的数据列和若干条数据行. 特点 视图不是数据 ...
- Java日期时间API系列5-----Jdk7及以前的日期时间类TimeUnit在并发编程中的应用
TimeUnit是一个时间单位枚举类,主要用于并发编程,时间单元表示给定粒度单元的时间持续时间,并提供实用程序方法来跨单元转换,以及在这些单元中执行计时和延迟操作. 1.时间单位换算 (1)支持的单位 ...
- vue学习笔记(三): 启动说明
1.启动页面:index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...
- 【转载】Gradle for Android 第四篇( 构建变体 )
当你在开发一个app,通常你会有几个版本.大多数情况是你需要一个开发版本,用来测试app和弄清它的质量,然后还需要一个生产版本.这些版本通常有不同的设置,例如不同的URL地址.更可能的是你可能需要一个 ...
- 复习一下KVC
一. 前言 KVC(Key Value Coding)是Cocoa框架为开发者提供的非常强大的工具,简单解释为:键值编码.它依赖于Runtime,在OC的动态性方面发挥了重要作用. 它主要的功能在于直 ...
- java 和 spring 的异步
spring 的 async 注解 https://www.baeldung.com/spring-async@Async will make it execute in a separate thr ...
- [Go] gocron源码阅读-go语言web框架Macaron
gocron源码中使用的是马卡龙框架,下面这个就是安装这个框架,和一般的MVC框架很像go get gopkg.in/macaron.v1git clone https://github.com/go ...
- mysql使用命令
1.创建用户 create user 'name'@'host' identified by 'psssword'; 2.授权 grant select, updata,insert (all) on ...
- requests---重定向
通常我们抓包的过程中,都会看到302的状态码,那么这个过程发生了什么? 什么是重定向 就是通过各种方法将各种网络请求重新定个方向转到其它位置,本来应该从a出发到达b但是最终到达了c,这种场景就叫做重定 ...
- 7.5 高级数据源---Kafka
一.Kafka简介 Kafka是一种高吞吐量的分布式发布订阅消息系统,用户通过Kafka系统可以发布大量的消息,同时也能实时订阅消费消息.Kafka可以同时满足在线实时处理和批量离线处理. 在公司的大 ...