Unable to connect to web sever IIS Express - visual-studio

I am working on project, where I need to have an access to debugging option.
I've tried to run my application as usually, but this time I received following message:
Unable to connect to web server 'IIS Express'
When I checked the console output I found there following note:
Failed to register URL "http://localhost:49748/" for site xxx application "/". Error description: The process cannot access the file because it is being used by another process. (0x80070020)
Successfully registered URL "https://localhost:44333/" for site xxx application "/"
I found also that 0x80070020 error - "in the case of IIS Express (or IIS) means that the port that it is attempting to listen on is being used by another process" (link to the similar question).
I can't understand what's happen here. When I try to run this application I'm receiving this error in my Visual Studio, but the application is starting in the background (I can manually navigate to the https://localhost:44333 and app is there). The problem is that I can't debug the code, cause the Visual Studio looks like 'unrelated' to this instance. Previously IIS Express was opening new browser window with URL of the application, and I was able to debugging my code.
I also can't understand why this problem is not appearing for brand new project - I've created new web app project to test this behaviour, and it does what I expect - I can use debugging in VS.
What I've tried to do so far is:
Restart VS,
Restart my local machine,
Change app url in solution explorer/properties/debug,
Remove applicationhost.config from .vs directory
and nothing works for me.
Before this issue appear I forked this repo: https://github.com/jasontaylordev/CleanArchitecture
and downloaded WSL and Docker - I doubt that this have an impact on my solution, but maybe this information will be helpful.
Is there anything what I can change/edit to back to my previous behaviour?
Thanks

I had this issue after upgrading to Windows 10 20H2. There are many answers I found on SO that did not work for me, but I found this blog that helped me figure out the problem. Try running netsh interface ipv4 show excludedportrange protocol=tcp on the command liine and check to make sure that the port you are using is not one of the excluded ports listed. If so, change it to one that is not excluded. I did this and everything worked as normal again.

Related

The program iisexpress.exe' has exited with code 0

When I try to start my newly created WebApplication I get this error:
The program '[73635] iisexpress.exe' has exited with code 0 (0x0).
I have already searched through internet and none of this solutions helped me:
Change the port number (and virtual directory)
Start as administrator
Deleting the .vs folder
Deleting the IISExpress-folder under Documents
Use 64-bit of version of IISexpress
Restart the computer
Press CTRL-F5
I just want to build the page.
I have done no changes to the original MVC5 website.
EDIT:
I thought it was an error, but in the comment #Lex li says it is not an error.
When I search through this on internet it look like many people had experienced it before.
I just created a new MVC application. Without doing any changes I try to run it with IIS Express (Google Chrome), but it just stops, without anything more. Chrome gives me this error: This site can’t be reached localhost refused to connect.. And I get no errors what so ever. It just wont start, and Visual Studio Diagnostic Tools stop running at the same time Chrome closes itself.
EDIT 2:
I have been able to dig a bit more:
C:\Program Files (x86)\IIS Express>iisexpress.exe /trace:error
Starting IIS Express ...
Initializing the W3 Server Started CTC = 2601562
Error initializing IISUTIL's LocalRequest. hr = 80072afa
Terminating W3_SERVER object
Start listenerChannel http:0
Initializing the W3 Server Started CTC = 2610156
Error initializing IISUTIL's LocalRequest. hr = 80072afa
Terminating W3_SERVER object
InitComplete event signalled
Process Model Shutdown called
Unable to start iisexpress.
I have realised that IISExpress i struggeling with something. I was able to get this error, when I presset CTRL - F5: unable to launch iis express web server.
Scan the folder C:\Users\xuser\source\repos\CMySQL\CMySQL for project files.
1 project(s) are detected.
* CMySQL.csproj
Project file: C:\Users\xuser\source\repos\CMySQL\CMySQL\CMySQL.csproj.
IIS Express configuration file: C:\Users\xuser\source\repos\CMySQL\.vs\config\applicationHost.config.
Analyze ASP.NET project.
Extract web project settings.
UseIIS: True
AutoAssignPort: True
DevelopmentServerPort: 61708
DevelopmentServerVPath: /
IISUrl: http://localhost:6549/
NTLMAuthentication: False
UseCustomServer: False
CustomServerUrl:
SaveServerSettingsInUserFile: False
UseIISExpress: true
IISExpressSSLPort:
IISExpressAnonymousAuthentication:
IISExpressWindowsAuthentication:
IISExpressUseClassicPipelineMode:
UseGlobalApplicationHostFile:
Scan all bindings.
IIS Express is used for this project.
Binding *:6549 (http).
A matching binding is found for http://localhost:6549/.
My problem was solved only by deleting the .vs directory.
For my , only worked remove the ISSExpress folder locate in c:\users"youruser"\Documents\ISSExpress
Closing all browser windows worked for me.
But that was after doing this first:
File -> Open -> Web Site
etc. as described here - I removed the website from IIS Express:
Why and how to fix? IIS Express "The specified port is in use"
not sure if I had to do both of these but it worked for me.
This happens to me when I try to run an application in localhost that was previously removed.
I needed to remake a local website in IIS with a path to the fisic folder where Web.config was located. Optionally, you can register at C:\Windows\System32\drivers\etc\host your local web site as anyname like adding the line:
127.0.0.1 yourlocalsite.Web
and using this name in the IIS associations as the host name for your site.
You can then open it in browser using yourlocalsite.Web.
In my case. As I also use the weblogic oracle, i has needed set in my regedit in '\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP' and in a property value 'start' should be set to 3. And restart the machine.
This work for me.
For me, I solved this problem by closing IIS Express process. So if u tried that was said above and it's still not working, try to change the IP port of your project if it is a web project, and then close IIS Express process.
If localhost uses the same port number for two projects, it could cause the issue.
For my case, one application runs at port 30000, other project tries to run at port
30000 too.
So the best practice would be to use different port number if possible.
My problem was solved by restarting the computer.
or
You can try by the remove your temp data.
I found my IP and DNS act strangely. Before I have deleted winsock and winsock2 entry on regdit. Just export these entry from other normal computer and import. This fixed my problem.
I had a problem with applicationhost.config. Apparently there were single quotation instead of souble quotation marks
enter image description here
for this i installed the
dotnet-sdk-3.4.424-win-64xx from below link
https://dotnet.microsoft.com/en-us/download/dotnet/3.1
after this i restarted the machine it worked for me

Visual studio 2017 "Unable to connect to web server 'IIS Express'"

If I attempt to launch my .net core app I get this message. I realize there are many posts out there claiming to fix this but I have tried every method they suggest and none are working.
If I go into the project properties under debug and change the port, then it will connect 1 time. Then if I attempt to connect again, it will give me the same error again. I can then switch the port back to the original and it will load one time, then it will fail any time beyond that, until I switch it again. Anyone have any ideas or fixes they used?
Thanks!
I had this problem. There is a hidden folder in directory of project that name is '.vs'. Close the Visual Studio and delete this folder. The problem will be solved.
I installed core 2.0 and updated VS 2017 to 15.4.3 today, had the same error.
I ended up changing the application to run on a different port, it worked for me.
I have tried to delete the vs folder but did not work.
Hope it helps.
I know there is already an accepted answer to this question, but none of the solutions worked for me and my solution may help someone. I am using VS2017 with an ASP.NET Core 2.0 Razor Pages project.
The error just started appearing for no obvious reason, and I tried the solutions posted here.
I ran the web app from the command line using the dotnet run command to see if that would bring up any meaningful errors, and there was a warning about the URL not being correctly bound. I looked in my projects Properties\launchSettings.json file and noticed that the applicationUrl properties were different.
Change the values for applicationURL so they are the same
Close the project and close VS
Delete the hidden .vs folder (as mentioned in the accepted answer)
Start up VS as Admin
Your app should work fine.
I was having this issue with Visual Studio 2019 with a clean branch from master. Restarting the PC solved the problem.
My colleague said he is having the problem about 2 times a month and other tries for solutions did not work.
It could also just be that there are iisexpress.exe processes hanging around in task manager which were running on the same port.
I've just found a couple and killing them solved this problem for me without needing to delete any .vs folder or changing ports or anything like that.
I gave up, and chose to run the project as self hosted, instead of 'IIS Express' in the play/run drop-down box.
In my case, the problem was caused by the port for HTTP and HTTPS being the same:
The ports must be different:
In a solution if you have multiple projects using ASP.NET Core in Visual Studio 2017 and you are trying to use the same port number you will get this error. You must have unique port assignment in your solution.
Go here in your project: Properties/launchSettings.json open this file and edit the port numbers here. Note: This is where you change the SSL port (two places).
Reason: VS/IIS Express maintains bindings to all the ASP.NET Core projects in your solution that use IIS Express as the server. For example if you use Kestrel or some other server you will not have this problem. VS creates a new port for each app when it is created in the solution to ensure you do not have port conflicts.
If you are trying to use Azure AD registered applications reply ports and trying to "reuse" your app registration, you might think to simply change the "app's" port so that you don't have to register it in Azure; this will not work. If you are just testing apps and want to reuse a registration then you must make sure that the app you are currently working on is the ONLY one on the port - manually. If you need to test two or more apps then you must register them in Azure AD individually as you would in production.
What worked for me and it is really simple:
Right-click project
Properties
Debug
App URL: change port to 5000
Done, hope helps someone.
Changin https -> http in my applicationUrl solved this issue in my case.
I have solved this issue by
adding exclusion to file devenv.exe in windows defender (anti virus, Win10)
how to know this is the issue;
when you load project defender will notify in notification unauthorized changes blocked. if this is the issue just add the exception as above mentioned.
For me above solutions did not work
But changing the IIS Express Bitness to x64 worked
I encountered this issue. Running VS in admin mode solved this issue for me.
Go to properties - select debug tab - change the App URL - e.g. to http://localhost:57520/
Something else can be running on your port that interferes.
This worked for me!
For me with VS2019, faced this same issue on start running our project.
So right clicking on IIS Express icon in notification pane near by DateTime pane in our laptop/Desktop. It will show up all running application, at last can find Exit. Click Exit there and run your project should work. That worked for me, without closing VS19 project.
After playing with netsh configuration trying to make the server accessible from outside, I added a new iplisten entry. The IISExpress showed the error Unable to connect to web server 'IIS Express' which was fixed after deleting the iplisten entry using:
netsh http delete iplisten <ip-address>
You can view the current list of iplisten entries using
netsh http show iplisten
They require running an elevated (administrator) command prompt.
It seems like IISExpress has no error message in this a case.
If you're hard-coding a specific IP address (not localhost), check that it hasn't changed.
Tried all. didn't work above.
changing host in applicationhost.config fixed.
change localhost to 127.0.0.1
<binding protocol="http" bindingInformation="*:50740:127.0.0.1" />
<binding protocol="https" bindingInformation="*:44381:127.0.0.1" />
It works after I reenter username and password for the application pool's identity account
Setting "Enable SSL" to false in project properties\Debug section worked for me.
It may not completely direct your case, but I just had to restart my (windows) system. The diagnosis of #Turneye may very well be the reason and his solution might accomplish the same result.
I added the localhost option on the applicationhost.config file and run visual studio as administrator and it worked for me.
<binding protocol="http" bindingInformation="*:6873:localhost" />
<binding protocol="https" bindingInformation="*:44320:localhost" />
<binding protocol="http" bindingInformation="*:6873:192.168.137.1" />
Some times running visual studio as administrator solves this issue.
For me worked by changing the applicationUrl in launchsettings.json file to different port number and that url to be same for all places inside this file.
In my case (VS 2019), all I have to do is Rebuild the code before I re-run the app after each code modification.
P.S. I am coding server-side Blazor.
If you've used netsh http add urlacl url=http://localhost:<port>/ user=everyone to add a specific url acl using the problem port then you'll need to delete it with netsh http delete urlacl url=http://localhost:<port>/ user=everyone.
Another solution is to run Visual Studio as an administrator which allows it to override the urlacl.
I was facing the issue multiple times in VS2019, then I realized when I make small edits and restart the IIS Express this problem is more pronounced. Some of the discussion above about ports make me think since I was closing the app by just closing the browser. So I believe the port was not released and it failed the start next time around.
I started closing the debug by clicking the "Stop Debugging" button in the VS2019. The issue didn't occur again for me.
I solved this by restart my laptop.
Rebuilding the solution fixed this problem for me.
For those of you using .Net Core 3.x and still struggling, like myself, I finally after days of searching found a hint to the problem https://weblog.west-wind.com/posts/2020/Jan/14/ASPNET-Core-IIS-InProcess-Hosting-Issues-in-NET-Core-31.
In .NET Core 3.x InProcess hosting for IIS is the default. OutOfProcess hosting externally runs Kestrel.exe and has IIS proxying requests into the external Kestrel HTTP host. InProcess hosting uses a custom IIS Module that bootstraps a custom .NET Core host right into the IIS host process which provides better performance and a smaller footprint.
Changing to "Out of Process" (Right Click Project > Properties > Debug > Web Server Settings > Hosting Model), closing visual studio, deleting the hidden .vs folder (as described in previous comments), and then running IIS Express in VS finally worked. If you ever change it back to "In Process" for testing and it doesn't work, you'll have to delete the .vs folder again after you change it back and close the project.
If you're like me and that got you over one hurdle and into another....
My next issue was i was getting this error This webpage is not available (with error code "ERR_CONNECTION_RESET") when running a request to ping the server in powershell (Invoke-WebRequest -Uri:https://localhost:{port}/{endpoint}). This thread mentioning the error lead me to a thread that mentioned a missing iss express development cert, which mentions solving it by running ./IisExpressAdminCmd.exe setupsslUrl -url:https://localhost:{port}/ -UseSelfSigned in the IIS Express program files directory in an admin powershell terminal.
I'm also gonna post my first issue here when trying to run IIS Express from Visual Studio, which was Cannot find C:\Program Files\IIS Express\iisepxress.exe. IIS Express was for some reason installed not only in my Program Files (x86), but in my second drive (D:\Program Files (x86)). After realizing that there is just no way to change where Visual Studio is looking for IIS Express (even though it's also installed on the D drive), I uninstalled IIS Express (which is probably how my dev cert got removed), in RegEdit changed my Program Files directory back to the "C\Program Files" folder (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion > ProgramFilesDir key), and reinstalled IIS Express from Microsoft.
Finally, I can run my .Net Core API locally using IIS Express.
Good luck all!

Error 503 Service Unavailable when using localhost with Visual Studio

I'm posting this to save others a day wasting time trying to solve this.
My PC froze during a build and publish of my web application, so I had to switch the machine off and back on again. This coincided with a Windows Update being applied when the machine restarted.
After this I could not run the web application in Visual Studio, getting a Error 503 Service unavailable.
After trying everything mentioned here and elsewhere on the web, I noticed an app_offline.html file sitting in the solution folder. The file was empty.
I deleted the file and of course it all starts working. This file had been left during the incomplete build process.
So, hope this helps someone else.
Delete the app_offline.html file if one has been left after a broken build and publish process.
If you have IIS. Then go to IIS and click Application Pool, then click on default application pool and the clik on START.

Unable to write to subfolder in website

I have a webservice that I need to be able to write some logs for. The service is installed in c:\inetpub\wwwroot\myservice. The log files should be written to c:\inetpub\wwwroot\myservice\logging.
When I try running it in debug mode in Visual Studio, log files are created successfully. When I publish the site and try it, log files are not created.
I have tried giving write access for the logging folder to: NETWORK Service, IUSR, IIS_IUSRS, DefaultAppPool, ASP .NET 4.0 Classic but it made no difference. I also added Everyone with Full Control, but it made no difference.
Any ideas why I cannot get write access to this folder????
I have no idea what caused the issue, but IIS had somehow got corrupted. It would no longer display pages either by using localhost or 127.0.0.1.
Removed and re-installed IIS, all working now.

MVC3 Ap in Visual Studio 2010- Changed to use Local IIS Web Server and can not get it back to VS dev server

I changed from running Use Visual Studio Development Server to Local IIS Web Server becasue I read it would create the virtual directories properly - it did not - once I navigate out of the account area I get
HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
Requested URL
https://localhost:443/xxx/Index
Physical Path
C:\inetpub\wwwroot\xxx\Index
I have been googling and trying to get it to work, but can not and can no longer debug - Now I am trying to change it back and it keeps starting in Local IIS Web. I have HOSED myself and don't know where to go from here.
Thank you
In terms of getting back to using the VS web server you should just need to:
Right click on the web project in VS
Selection properties
Go to the web tab
Select "use visual studio web server" radio button
For the sake of not leaving questions unanswered, I tried all of the suggestions above, and many more, and got nowhere. I was in an early phase at the time, and I had to move on, so I ended up creating a new solution, and porting things over. Not the best idea, but I had to go forward, and I had taken enough time. It is still living on my machine, and I plan to go back and figure it out at some point. Hopefully, I'll have more understanding and will be able to post what I did wrong so someone else can save some time. Thanks all for attempting.

Resources