Reputation: 1479
we are running some of our sites as Web Site projects in Visual Studio. We recently upgraded to VS2015. Now we can't add virtual directories to new websites.
We already tried right-click "Add new virtual direcory" where we get an error message as well as editing the applicationhost.config in the Project folder.
Is this a bug with VS2015 or is there a way to create the directories? There is no problem with project that already ran on IIS Express before upgrading to VS2015.
PS: I know of the thread here but it doesn't help.
Upvotes: 9
Views: 26027
Reputation: 2300
Similar to WhizBang's answer...
Delete the file in your root project folder (Back it up if you wish)
.vs\config\applicationhost.config
Empty the IISUrl tags in your project file (if exists)
<IISUrl></IISUrl>
Go to project properties and try to create your virtual url again.
Upvotes: 0
Reputation: 1011
Neither of the answers above worked for me, I am still not sure why this works but here is what I did:
Modify the Applicationhost.config file that resides in the project:
Originally it looked like this:
<site name="Website" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:\...\MyWebsite" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:51005:localhost" />
</bindings>
</site>
I had to add another application path entry:
<application path="/mywebsite" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:\...\MyWebsite" />
</application>
So it ends up looking like this:
<site name="Website" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:\...\MyWebsite" />
</application>
<application path="/mywebsite" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:\...\MyWebsite" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:51005:localhost" />
</bindings>
</site>
Upvotes: 8
Reputation: 183
Alternative if you have solution file ".sln", then follow the steps:
Use notepad open the solution file.
Find the row starts with Project("{
For example:
Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "WebProject1", "WebProject1", ......
Then change it to be:
Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "WebProject1", "http://localhost:12345/WebProject1", ......
And add new property
SlnRelativePath = "C:\WebProject1\"
within ProjectSection(WebsiteProperties)
In example, the ProjectSection from
Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "WebProject1", "WebProject1", "{6D411253-734E-401A-A049-9620FC55D4FB}"
ProjectSection(WebsiteProperties) = preProject
UseIISExpress = "true"
TargetFrameworkMoniker = ".NETFramework,Version%3Dv4.0"
Debug.AspNetCompiler.VirtualPath = "/WebProject1"
Debug.AspNetCompiler.PhysicalPath = "C:\WebProject1\"
Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\WebProject1\"
Debug.AspNetCompiler.Updateable = "true"
Debug.AspNetCompiler.ForceOverwrite = "true"
Debug.AspNetCompiler.FixedNames = "false"
Debug.AspNetCompiler.Debug = "True"
Release.AspNetCompiler.VirtualPath = "/WebProject1"
Release.AspNetCompiler.PhysicalPath = "C:\WebProject1\"
Release.AspNetCompiler.TargetPath = "PrecompiledWeb\WebProject1\"
Release.AspNetCompiler.Updateable = "true"
Release.AspNetCompiler.ForceOverwrite = "true"
Release.AspNetCompiler.FixedNames = "false"
Release.AspNetCompiler.Debug = "False"
EndProjectSection
EndProject
become this finally:
Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "WebProject1", "http://localhost:12345/WebProject1", "{6D411253-734E-401A-A049-9620FC55D4FB}"
ProjectSection(WebsiteProperties) = preProject
UseIISExpress = "true"
TargetFrameworkMoniker = ".NETFramework,Version%3Dv4.0"
Debug.AspNetCompiler.VirtualPath = "/WebProject1"
Debug.AspNetCompiler.PhysicalPath = "C:\WebProject1\"
Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\WebProject1\"
Debug.AspNetCompiler.Updateable = "true"
Debug.AspNetCompiler.ForceOverwrite = "true"
Debug.AspNetCompiler.FixedNames = "false"
Debug.AspNetCompiler.Debug = "True"
Release.AspNetCompiler.VirtualPath = "/WebProject1"
Release.AspNetCompiler.PhysicalPath = "C:\WebProject1\"
Release.AspNetCompiler.TargetPath = "PrecompiledWeb\WebProject1\"
Release.AspNetCompiler.Updateable = "true"
Release.AspNetCompiler.ForceOverwrite = "true"
Release.AspNetCompiler.FixedNames = "false"
Release.AspNetCompiler.Debug = "False"
SlnRelativePath = "C:\WebProject1\"
EndProjectSection
EndProject
Upvotes: 2
Reputation: 256
FileSystem Web site to IIS Express.
Now you can create it without error.
Upvotes: 8