Unable to launch the IIS Express Web server, Failed to register URL, Access is denied

匿名 (未验证) 提交于 2019-12-03 01:14:02

问题:

Some web projects are causing me problems while others work fine. I decided to focus on one of the problematic ones. I'm using Visual Studio 2013 on Windows 7. I think I'm running it as administrator, the window title says PROJECT NAME - Microsoft Visual Studio (Administrator).

When I try to run the project I get a popup saying:

Unable to launch the IIS Express Web server.  Failed to register URL "http://localhost:62940/" for site "SITE NAME" application "/". Error description: Access is denied. (0x80070005). 

This does not seem entirely uncommon but I have tried many of the suggestions without luck:

  1. Deleted %userprofile%\Documents\IISExpress\, tried to run.

  2. netsh http add urlacl url=http://localhost:62940/ user=everyone, rebooted and tried to run. (Actually user=Alla since Swedish Windows).

  3. netsh http delete urlacl url=http://localhost:62940/, rebooted and changed from .

  4. Reinstalled IIS 8.0 Express

  5. Reinstalled Visual Studio 2013

I'm at my wit's end, what am I doing wrong?

Edit 1: If I change the port of the project (e.g. to 55555) it starts... This is not a desirable solution since these projects are worked on by several people. Maybe the port is blocked by something else? If so, is there an easy way to check by what?

Edit 2: Port 62940 seems to be free. Running netstat does not show any application listening to it. Something else must be wrong.

Edit 3: I tried starting the project today after not touching it for a few months. It worked but I don't know why.

回答1:

I solved the error by changing the port for the project.

I did the following steps:

1 - Right click on the project.
2 - Go to properties.
3 - Go to Server tab.
4 - On tab section, change the project URL for other port, like 8080 or 3000.

Good luck!



回答2:

The ideal way to sort this out is to use the IIS Express tray icon to stop the web site that is causing the problem. To do this, click the little upward-pointing arrow in the right-hand end of the task bar and right-click the IIS Express icon. This will pop up a small window showing you the web sites that IIS Express is currently running...

If you click on one of the items under "View Sites" you have the option to stop that site. Or, you can click the Exist item at the bottom of the window to stop all web sites.

That should enable you to debug in Visual Studio. When you start debugging again, IIS Express will automatically restart the web site, and should be able to allocate the port.

If that fails, you have to do it the dirty way. Open Windows Task Manager and kill the Microsoft.VisualStudio.Web.Host.exe*32 process, then you can run the project fine. Note that this will kill IIS Express completely, meaning that all web sites will stop, so you'll have to restart each one in VS if you want to debug any others. Try the pop-up icon method first tough as it's cleaner and safer.

Don't know if this answers your issue, but it works for me.

Update Thanks to JasonCoder (see comment below) for adding that on Win10, the process is Microsoft.VsHub.Server.HttpHost.exe



回答3:

When using Visual Studio 2015 the solution can be a bit different to the previous answers. VS2015 creates a hidden folder .vs under the same folder as your solution file. Under this is a config folder containing applicationhost.config. Deleting this file (or the entire .vs folder) then starting VS2015 to recreate it can fix this error.



回答4:

try (as elevated administrator)

netsh http delete urlacl url=http://*:62940/ 


回答5:

Got this error as well lately. Tried all the above fixes, but none worked.

To disable it, type services.msc in command prompt, then right click and disable Internet Connection Sharing. I edited the properties of it as well to disable at startup. Mine looks like so now: services capture screenshot.



回答6:

I just had a similar issue. I'm not totally sure how to describe the actual fault but it seems like the hostname in the reservation is incorrect. Try this in an elevated command prompt...

netsh http delete urlacl url=http://localhost:62940/

... then ...

netsh http add urlacl url=http://*:62940/ user=everyone

and restart your site. It should work.



回答7:

I ended up with cleaning the project file (csproj) and the applicationhost.config (iis express) with all entries regarding iis express configuration. After that, it worked.



回答8:

After trying a number of suggested solutions without success I just rebooted my PC. After that the problem didn't occur anymore.



回答9:

If you're having this after installing Visual Studio 2015 and you can see Error messages in System event log such as this: Unable to bind to the underlying transport for [::]:{your_port}. . The IP Listen-Only list may contain a reference ... then you might be missing a registry entry.

Run this under administrative command prompt: netsh http add iplisten ipaddress=:: to fix it.

I found the solution described in detail here



回答10:

After all of the steps listed here failed for me I got it working by running VS2015 as administrator.



回答11:

I ran into this same error message, but it looks like it was produced from IIS Express. This article helped me resolve it

TL;DR

Run the following command from an Administrative command prompt:

> netsh http add iplisten ipaddress=:: 


回答12:

This happened with me when I was trying to access my site from a remote location:

At first, applicationhost.config (VS2015) contained the standard:

In order to access my site from a remote location within the network, I added (step 1):

Then, I entered into CMD with Admin rights (step 2):

netsh http add urlacl url=http://*:64376/ user=Everyone 

As step 3, I added it a rule to the firewall.

netsh advfirewall firewall add rule name=”IISExpressWeb” dir=in protocol=tcp localport=64376 profile=private,domain remoteip=localsubnet action=allow 

Then, I got this error when trying to run the solution again.

Solution: I seemed to have done everything right, but it did not work until I ran netsh also for the existing localhost rule:

netsh http add urlacl url=http://localhost:64376/ user=Everyone 

Now, it works again.



回答13:

This happened to me on Windows 10 and VS 2013. Apparently there is a maximum port number IIS Express handles. Ports above 62546 don't work for me.



回答14:

The error can be solved if you just restart Visual Studio. It has the same effect as restarting the Microsoft.VisualStudio.Web.Host.exe*32 process.



回答15:

My issue turned out to be that I had SSL Enabled on the project settings. I simply disabled this because I did not require SSL for running the project locally.

In Visual Studio 2015:

  • Select the project in the Solution Explorer.
  • In the Properties window set SSL Enabled to False.
  • I was able to run the project.

In my situation I was getting an error about port 443 in use because this was the port set on the SSL URL for the project.



回答16:

Go to the project "Properties" => "Web", and on the "Servers" section change the port to something else that is not used in and save it. You will be asked to created a virtual directory and click "Yes". Now run the project and it will work now.



回答17:

In my case it worked at first and after a while stopped working and IIS Express reported that the port was in use.
netstat -ab showed that Chrome was using the port. After I quit Chrome, it started working again.
I am not sure however, why Chrome would occupy that port.



回答18:

This happened to me on Windows 7 and VS 2013 while viewing a project on the browser after build. I only had to close the browser "Chrome" then made sure that the port is not in use in my Network Activities using some utility (Kaspersky) then tried again and worked without any problems.



回答19:

I write it for information.

Delete the file in the project.

After Clean>Build>Proje Start



回答20:

Sometimes this error my be another Visual Studio version running on the same machine.



回答21:

Looks like everybody has own problem Just sharing what I did to fix this problem in VS2015 (Windows 8.1), my solution has 6 web sites (not web apps)

  1. Open your solution file *.sln
  2. Change in your solution file string VWDPort = "34781" (make it unique in your solution if you have more that 1 web site, I made +2) in notepad.

See sample solution file ProjectSection(WebsiteProperties):

Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "BOSTONBEANCOFFEE.COM", "Source_WebOfficeV4\BOSTONBEANCOFFEE.COM", "{5106A8F5-401B-4907-981C-F37784DC4E9D}" ProjectSection(WebsiteProperties) = preProject     SccProjectName = ""$/PrismRMSystem/VS2012/WebOfficeV4.root/WebOfficeV4", IPYHAAAA"     SccAuxPath = ""     SccLocalPath = "..\.."     SccProvider = "MSSCCI:Microsoft Visual SourceSafe"     TargetFrameworkMoniker = ".NETFramework,Version%3Dv4.0"     ProjectReferences = "{04e527c3-bac6-4082-9d39-aad8771b368e}|YBTools.dll;{5d52eaec-42fb-4313-83b8-69e2f55ebf14}|AuthorizeNet.dll;{d8408f53-8f1e-4a71-8b05-76023b09b716}|AuthorizeNet.Helpers.dll;{77ebd08a-de0f-4793-b436-fad6980863e6}|WEBCUSTCONTROLS.dll;"     Debug.AspNetCompiler.VirtualPath = "/BOSTONBEANCOFFEE.COM"     Debug.AspNetCompiler.PhysicalPath = "Source_WebOfficeV4\BOSTONBEANCOFFEE.COM\"     Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\BOSTONBEANCOFFEE.COM\"     Debug.AspNetCompiler.Updateable = "true"     Debug.AspNetCompiler.ForceOverwrite = "true"     Debug.AspNetCompiler.KeyFile = "Key\StrongKey.snk"     Debug.AspNetCompiler.DelaySign = "false"     Debug.AspNetCompiler.AllowPartiallyTrustedCallers = "false"     Debug.AspNetCompiler.FixedNames = "true"     Debug.AspNetCompiler.Debug = "True"     Release.AspNetCompiler.VirtualPath = "/BOSTONBEANCOFFEE.COM"     Release.AspNetCompiler.PhysicalPath = "Source_WebOfficeV4\BOSTONBEANCOFFEE.COM\"     Release.AspNetCompiler.TargetPath = "PrecompiledWeb\BOSTONBEANCOFFEE.COM\"     Release.AspNetCompiler.Updateable = "true"     Release.AspNetCompiler.ForceOverwrite = "true"     Release.AspNetCompiler.KeyFile = "Key\StrongKey.snk"     Release.AspNetCompiler.DelaySign = "false"     Release.AspNetCompiler.AllowPartiallyTrustedCallers = "false"     Release.AspNetCompiler.FixedNames = "true"     Release.AspNetCompiler.Debug = "False"           VWDPort = "34781"     SlnRelativePath = "Source_WebOfficeV4\BOSTONBEANCOFFEE.COM\" EndProjectSection 

In my case, I tried to change URL from project properties, restart VS, reboot computer, nothing helped me only this SLN file manipulation fixed my problem.



回答22:

For me this problem was entirely related to a broken install of Oracle ODP tools for VS. I uninstalled and reinstalled and everything was working again.



回答23:

In Visual Studio 2015:

  • Find your startup page in your project (eg: mypage.aspx) , and right click on it.
  • Click on Set as Start Page.
  • Right click on the project.
  • Click on Properties.
  • Click on the Web Tab on the left.
  • In Project URL, enter a different port, such as: http://localhost:1234/
  • In Start Action, select Specific Page: mypage.aspx or select Specific URL: http://localhost:1234/mypage.aspx?myparam=xxx


回答24:

And in my case, it turned out that I didn't have IIS enabled in Control Panel under Windows Features. Reference Image, since SO won't let me upload



回答25:

In VS2017. I had to edit my .sln file and had to update the VWDPort = "5010" setting. None of the other solutions posted here worked.



回答26:

I solved this issue by killing all instances of iexplorer and iexplorer*32. It looks like Internet Explorer was still in memory holding the port open even though the application window was closed.



回答27:

In my case, I had the setting Override application root URL checked, on the Properties->Web tab. I was using that previously when I was running VS as an administrator, but now that I'm running it in a non-admin account, it causes the error.



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!