Dmytro
Dmytro

Reputation: 17196

Creating a virtual directory failed with the error

I can't solve this problem

enter image description here

I suggest I have to change c:\Windows\System32\drivers\etc\hosts file and add after

# localhost name resolution is handled within DNS itself.

the next line:

127.0.0.1       mysite.dev

but it doesn't help. Any suggestions?

Error ocсurrs when I try to open web site project in Microsoft Visual Studio 2012.

Upvotes: 105

Views: 98007

Answers (21)

E. Vakili
E. Vakili

Reputation: 1096

Thanks to @saminpa, I found this comment helpful in my situation, so, I added it as an answer to be found easily.

If the .vs folder is encrypted by the NTFS encryption system (EFS), this error will be seen.

Upvotes: 0

Spring
Spring

Reputation: 900

simply fix for me
Close your Visual Studio

o remove .vs in .Net
o remove IISExpress in Documents

Reopen it, everything should be fine

Upvotes: 0

Matt L
Matt L

Reputation: 55

I was able to resolve this by editing the file *.csproj in the root level of the project. I changed and from localhost to the site name as shown below. It may also be required to have the OverrideIISAppRootUrl set to True. enter image description here

Upvotes: 1

capertuz
capertuz

Reputation: 11

Creation of the virtual directory xxxx failed with error: Object reference not set to an instance of an instance of an object...

Error Screenshot This issue happened to me after deleting my local repository and downloading the repository from the cloud.

Per one of the solutions above, I deleted the .vs folder with no luck. To solve the issue, I ended up mixing a couple of the solutions in this forum.

I went to the folder .vs/SolutionName/config and pasted the applicationHost.config file from the latest subfolder on the folder C:/inetpub/history/

After that, I restarted VS and the error disappeared.

Upvotes: 0

Matt L
Matt L

Reputation: 55

I had to somewhat combine some of the above answers. My solution was to edit (not delete) the file .vs\config\applicationhost.config

There is a section for the bindings of the site, simply change from localhost to whatever you desire to run it under. Note that the port numbers are in front of the server name.

applicationhost.config bindings section

Upvotes: 1

Fran
Fran

Reputation: 51

Try decrypting the applicationhost.config file. That worked for me.

Upvotes: 0

Kousik Patra
Kousik Patra

Reputation: 1

I wanted open an exiting project of Visual Studio 2017 in VS 2019 and encountered with the same issue. I find its a version related problem. The solution is: Create a new project in the newer VS and copy the codes from the older VS.

Upvotes: 0

Ashran Haider
Ashran Haider

Reputation: 161

The issue can be fixed by deleting the folder named .vs in the project directory.

This solves the problem because while opening the project after deleting the .vs file, it creates the same folder with subfolder config and folder with project name.

The config folder applicationhost contains the necessary settings required to run the project successfully.

Upvotes: 12

Huzaim
Huzaim

Reputation: 115

  • Tried several approaches mentioned in the answers, but what finally worked for me was swapping the <IISUrl> of .csproj with <CustomServerUrl>.

Edit :

  • The above didn't solve the root cause of the issue for me. However, If you've done a windows update recently, perhaps it might be the reason that's causing the issue. Try executing netsh http add iplisten 0.0.0.0 and see whether it solves the issue.

Hope these would help someone still looking for a way.

Upvotes: 3

Steve Greene
Steve Greene

Reputation: 12324

My issue was with Windows 10 Defender. I had given IIS permission in the past, but seems like it is now ignoring it. Will look into it later, but for now I disabled controlled folder access and it worked.

Upvotes: 0

Hudson Nascimento
Hudson Nascimento

Reputation: 9

So here are the steps to fix it:

  1. Go where your .csproj file is. This is usually one directory below the solution (.sln)
  2. Right click and open with a text editor (notepad)
  3. Find IISUrl tag and replace its content for http://localhost:(YourPortNumber)
  4. Save and reload your project!

Upvotes: -1

pat capozzi
pat capozzi

Reputation: 1459

I just went to the directory named in the error and renamed the applicationhost.config and restarted and VS created a new file and ran fine.

Upvotes: 7

Leland Daniel
Leland Daniel

Reputation: 21

Not the exact same error, but I was lead to this answer since the first half of the error matched. Your applicationhost.config file may simply be read-only. Taking that off solved the error for me. That error calls out the file specifically though, so you should be able to find it easily.

Upvotes: 1

pim
pim

Reputation: 12597

More often than not, at least in my case, this happens is when a *.csproj.user file is in the project directory and has <UseIISExpress>true</UseIISExpress> in it.

Alternatively, as mentioned by Zachary Cutler you can also simply: close Visual Studio, delete the *.csproj.user file and reopen Visual Studio. This will force VS to rebuild the file.

Upvotes: 214

Andy
Andy

Reputation: 13607

I know this is probably a rare occurrence, but figured I'd put it here:

My csproj file was set to "read only" (Don't ask me how I managed that), but after I turned off "read only" access, everything was fine. (VS2017)

Upvotes: 1

Dmytro
Dmytro

Reputation: 17196

I've already found the solution. I just had to edit C:\Users\Administrator\Documents\IISExpress\config\applicationhost.config file, by adding my site to <sites> node.

Upvotes: 38

pampi
pampi

Reputation: 547

The problem would be your project setup to be executed in the local IIS and the URL specified not exist.

There are options you can do to fix the problem.

Option 1 : (Use IIS Express)

1.) Open you web project .csproj file as XAML or in notepad.

2.) Find these properties and set according to your preferences.

UseIIS = false

UseIISExpress = true

and that's it.

Option 2 : (Use local IIS)

Follow the option 1 steps but change the following properties.

UseIIS = true

IISUrl = https://localhost

UseIISExpress = false

Upvotes: 21

Rinki Barsainya
Rinki Barsainya

Reputation: 1

I was facing the same issue because of my network password changed.I changed my NetExtendor login password but I have to login in my laptop with old password.

Try these steps to fix this issue:

log into the Computer with whatever password works log into vpn with whatever password works ctl-alt-del to lock the pc then use the new password to unlock it

It worked for me :-)

Thanks!

Upvotes: 0

Vernie Namca
Vernie Namca

Reputation: 115

  1. Turn on windows features "Internet Information Services" in control panel.
  2. Open ".csproj" file and find
  3. Modify this line based on your requirements. http://localhost:777/
  4. Open the project/solution now
  5. If failed to load again, just right click the solution and select "Reload Project".

Upvotes: 1

Daniel Szabo
Daniel Szabo

Reputation: 7281

I don't know why, by my applicationhost.config file was completely missing from my C:\Users\Administrator\Documents\IISExpress\config\ folder.

Copy/pasting C:\inetpub\history\applicationhost.config into that folder seemed to fix the problem for me.

Got the idea from here.

Upvotes: 1

willyMon
willyMon

Reputation: 639

You can opt to install IIS locally and edit a couple of tags on .csproj File. Open you csproj file and go to section <VisualStudio> then find tag <UseIIS>True</UseIIS> it must be set as true, then go to tag: <IISUrl> and set up with the URL address where the application will be hosted for testing:

<VisualStudio>
      <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
        <WebProjectProperties>
          <UseIIS>True</UseIIS>
          <AutoAssignPort>False</AutoAssignPort>
          <DevelopmentServerPort></DevelopmentServerPort>
          <DevelopmentServerVPath>/</DevelopmentServerVPath>
          **<IISUrl>http://localhost/myWebSiteAppSample</IISUrl>**
          <NTLMAuthentication>False</NTLMAuthentication>
          <UseCustomServer>False</UseCustomServer>
          <CustomServerUrl>
          </CustomServerUrl>
          <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
        </WebProjectProperties>
      </FlavorProperties>
    </VisualStudio>

And that is. Now you can load your project normally.

Upvotes: 20

Related Questions