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

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!

Related

Installing IIS broke Visual Studio Office Add In Project Localhost

I was trying to answer this question "How to host Office Add In with IIS" --> https://stackoverflow.com/a/70616170/5079799 and I did by installing IIS and configuring it to serve site.
It seemed to work fine then, switching between IIS and VS, but after perhaps a reboot or regardless, today, I can't seem to get VS to use its own webserver. It seems to be serving the files under IIS webroot C:\inetpub\wwwroot, not the files in the project as I can navigate to URLs in my webroot, but if I open IIS, it doesn't show running.
Any ideas?
Update:
I tried completely uninstalling IIS from Programs and Features, but VS (2017) still seems to serve the webroot vs the project files.
Shortly after, VS didn't seem to load anything, neither the project, or the webroot was available after running solution
It seems URL/Ports have been changed somehow in the settings under my vbprojec files
Well, I found some settings that VS seems to have changed on me and one setting I changed that messed everything up.
I had hard coded the --> ~remoteAppUrl/ to be localhost:port.
I did manage to get things to work, two times, but adjusting settings, but I couldn't reliably reproduce so I did a hard reset and tried adjusting the localhost:port to ~remoteAppUrl/ in the xml and it worked, using a different port then before. This is probably the best route to go as I had already created a "localhost" xml and a prod xml so I can leave the VS xml with ~remoteAppUrl/. I'm guessing VS noticed that IIS was using the port it had before, even though IIS was off, it decided to use a new port to avoid conflict?
Here is some settings I changed to get it to work:
In Web.vbproj
<IISExpressSSLPort>44342</IISExpressSSLPort>
<AutoAssignPort>True</AutoAssignPort>
<DevelopmentServerPort>57161</DevelopmentServerPort>
<IISUrl>http://localhost:57161/</IISUrl>
Became:
<IISExpressSSLPort>44367</IISExpressSSLPort>
<AutoAssignPort>False</AutoAssignPort>
<DevelopmentServerPort>44367</DevelopmentServerPort>
<IISUrl>https://localhost:44367/</IISUrl>
In Web.vbproj.user:
<IISExpressSSLPort>44367</IISExpressSSLPort>
Also I noticed that my GUID had changed somewhere along the line, so make sure that all lines up.
I also changed the URL in the Web Properties.
Viewing the properties gave me some insight as well.

Unable to connect to web sever IIS Express

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.

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

Windows Azure - The current service model is out of sync

When I run a Windows Azure web role on my local developer fabric, I get the following error:
The current service model is out of sync. Make sure both the service configuration and definition files are valid.
One of my colleagues hit this issue and after a bit of playing about, the problem was that the two service configuration files (cloud and local) had a different number of Settings.
When he updated the configuration files so that they were in sync it all worked.
A tip would be to use the GUI in Visual Studio to add new settings to both at the same time. The GUI can be accessed by right clicking the web role and selection properties. This should open up a window. Click the Settings tab on the left.
For me, this was caused by my azure project having been copied from one PC to another (going from Win 7 to Win 8.1 in the process). I am using VS 2013 Community edition on both, but I had upgraded from Azure 2.4 on Win7 to Azure 2.5 on the Win 8.1 machine.
If you unload the azure project and edit the csproj file, you just need to make a small edit (e.g. adding a comment) and save it, so it re-writes itself. This fixed it in my case (where I'd spent ages checking for errors in the CSDEF and CSCFG files). Once I re-saved the csproj file, it worked fine.
This happened to me because one of my cloud configuration files (.cscfg) was missing some key-value pairs that were defined in ServiceDefinition.csdef.
Going over the files manually was a pain. There's an easy way to discover the descrepancies:
In the Solution Explorer, right-click one of the Roles that make up
your Cloud Service and click 'Properties' in the context menu.
The Role properties window will open up grey with an error message saying:
"Invalid Service Definition or service configuration. Please see the
Error List for more details".
Open the Error List window and in some cases you
should be able to see a list of the specific discrepancies, complete with file
and property names.
I followed all the answers here and it still didn't work
eventually I restarted Visual Studio and it worked.
I believe the solution was the combination of one or more of the answers here + restarting VS.
What worked for me was to:
Make sure the Cloud Services .cscfg and .Local.cscfg files were identical (unless you need your Local.cscfg to have some differences for debugging purposes),
Make sure the .csdef file had definitions that matched the .cscfg files, and then
Close the project and delete its Cloud Services .ccproj.user file.
After reloading the project, all was well.
The error can occour when there is no actual fault in the service configurations.
If it occours and everything seems to be correct, instead of restarting visual studio, simply unload the azurecloud project (rightclick: unload proecjt
Please cross check your ServiceConfiguration.Cloud.cscfg and ServiceConfiguration.Local.cscfg files. My problem was, I added a configuration to Local.cscfg but forgot to add the same to Cloud.cscfg
Had this issue - no errors though. I have found that for some bizarre reason the if the setting:
<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="UseDevelopmentStorage=true" />
was commented out, then the workerrole would not launch.
For me, the issue turned out to be an inconsistency between the vmName value I had assigned to one of my roles in my various environments. I have a *.cscfg files for my development, test, and production environments. Each of these had a role definition that was supposed to be along the lines of
<Role name="HardWorker" vmName="SomeName">...</Role>
but one had an entry like
<Role name="HardWorker" vmName="SomeOtherName">...</Role>
and that, apparently, was enough to trigger the error.
My problem was incorrect certificate definition in csdef file.
For me the problem was that the Wifi I was using blocked the PORT Azure is using, changing Wifi solved that problem.

Unable to publish website from Visual studio 2010

We have a an ASP NET MVC website solution which only one out of three devs on the team is able to publish to the live server. When I, and another colleague, attempt to publish the site from VS 2010, the output window will display an error:
Unable to create the Web site
'\blah'. The path '\blah' does not
exist or you do not have access. The
specified path is invalid.
This points to a logon issue which my account, but the developer who can publish the site is a member of all the same user groups as me. As a long-shot, we gave Everyone full access to the folder, but this did not resolve the problem.
Can anyone suggest a more detailed way to try and figure out why we cannot publish the site? There must be a permission set somewhere that is allowing my colleague to publish the site from Visual Studio.
I had this problem and racked my brain trying to resolve it so I wouldn't have to copy the publish files to a remote server manually. I spent a great deal of time actively trying to get this to work.
Here's how I solved the problem: I went to File>Open in Visual Studio 2010 Express and navigated to the remote server (\\255.255.255.255\folder1\folder2\folder3 and so on). Right away I was challenged for a User Name an Password. I entered the credentials for the REMOTE server, checked the box to 'Remember my credentials'. I immediately tried to publish and voilá - it worked like a charm.
I hope this saves a lot of people a lot of time.
I had this issue - certain members of our team were able to publish directly from VS2010, whereas for some reason I was always getting permission denied errors, even though we were all able to connect to the server we were trying to deploy to. I fixed it in the following way:
Go to "Server Explorer".
Right click "Servers" and go to "Add server..."
Type in the name of the server you are trying to connect to, and then click on "Connect using a different user name..." - put the credentials for logging into the server in here.
Click OK and wait for it to add the server.
Now try and publish to that server and it should be ok...
Not sure why I needed to do this and others were able to deploy without adding the server in this way... remains unexplained.
According to the comments below:
You may need to restart Visual Studio in order for this to take effect.
This should also work for newer versions of Visual Studio
Faced the same problem today. In my situation I had to close VS2010 and open it NOT as an admin and it worked without any problems.
This got me for a long time...Go to Project - Properties and select the Package/Publish Web tab. Under the header "Web Deployment Package Settings", there's a ellipsis button that you can use to map to the location you want to publish. You will be asked for your credentials during that process.
Are you using web deploy (right click and choose Publish)?
Have you tried copying the ProjectName.Publish.xml file from the one machine where you can publish to the other two machines? The login credentials for publishing are saved in this file.
In IIS can you check to see that all users/groups are listed under Management Service Delegation in IIS Manager? It is listed under the Server node in IIS. Alternatively you can give all administrators access by clicking on Edit Features from the side-menu and checking Allow Administrators to bypass rules.
You could also check under IIS Manager Permissions for the individual site to see if the person that can publish is listed under there and you are not.
I just recently setup MSDeploy access on my server and found the following two tutorials helpful:
http://william.jerla.me/post/2010/03/20/Configuring-MSDeploy-in-IIS-7.aspx
http://code-inside.de/blog-in/2011/04/03/howto-setup-of-webdeploy-msdeploy/
I have also found that mapping a drive to the UNC location can be a work around.
#soupy1976's solution has also worked for me.
I can not explain why one day it will work and one day it won't
Frustrating....

Resources