我有一个在VS 2012中开发的c#Web站点类型项目。我想使用VS 2015,但我在指定与默认根目录不同的虚拟目录时遇到问题./。
在vs 2012中,在sln文件中有以下几行:
VWDPort = "59903"
VWDDynamicPort = "true"
VWDVirtualPath = "/myapp"
并且一切都按预期工作,即当应用程序在浏览器中启动时,它会转到:http://localhost:59903/myapp。
我在VS 2015中打开了解决方案,vs创建了一个隐藏的.vs文件夹,它将applicantionhost.config文件放在.vs \ config文件夹下。
这是它为网站项目创建的条目:
<site name="My Web Application" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:\Users\costa\Documents\webapps\My Web Application" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:59903:localhost" />
</bindings>
</site>
我尝试使用应用程序和virtualDirectory元素的路径设置,但没有任何作用。
如果我为应用程序元素设置路径,则不会加载网站项目。如果我保持原样,并设置virtualDirectory的路径让我们说/ myapp我得到HTTP错误500.0 - 内部服务器错误,模块:AspNetAppInitializationFailureModule,处理程序:PageHandlerFactory-Integrated-4.0或ExtensionlessUrlHandler-Integrated-4.0取决于我的网址试着访问。
如果我将路径设置为“/”,一切正常。
让我感到困惑的是,当我在解决方案资源管理器中选择网站项目时,在属性窗口中,SSL URL和URL属性被禁用。我不知道它是从哪里获得的。我认为URL可能来自applicationhost.config文件。
在网站属性页面窗口的“开始选项”下,我有“开始操作=使用当前页面,服务器=使用默认Web服务器”。
我在Windows 2008 R2 SP1 VM上使用VS2015和Update 3(不要问我为什么会这样)。
有什么想法吗?
我做了一些研究,但找不到任何东西。另一个不起眼的事情(imo)是通过选择以下方式在IIS express中创建站点或虚拟目录的能力:新网站 - &gt;浏览 - &gt;选择左侧的本地IIS。我不太清楚这与现有的网站项目有什么关系。
由于
答案 0 :(得分:2)
使用以下配置使其正常工作,即http://localhost:59903/myapp现在和http://localhost:59903一起工作。
<site name="My Web Application" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:\Users\costa\Documents\webapps\My Web Application" />
</application>
<application path="/myapp" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:\Users\costa\Documents\webapps\My Web Application" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:59903:localhost" />
</bindings>
</site>
请注意是否存在两个应用程序元素。
也可以看到这一点:IIS7: Possible causes of 'Unrecognized configuration path' error
答案 1 :(得分:2)
有一种方法您不需要修改配置文件就容易多了。这是微软的答案。