【发布时间】:2016-03-25 21:45:19
【问题描述】:
我一直在使用VS2013,但是刚刚安装了VS2015。我一直在开发的 Web 项目(不是网站)使用在 application.host 配置文件中定义的虚拟目录。在通过 IIS Express 进行本地调试之前,它运行良好。但是现在我在 VS2015 上,它就像虚拟主机不存在一样。
这是我在配置文件中的内容...
<site name="VMCC" id="1993109772">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:\Users\myuser\Documents\Visual Studio 2013\Projects\VMCC\VMCC" />
</application>
<application path="/Photos" applicationPool="Clr2IntegratedAppPool">
<virtualDirectory path="/" physicalPath="c:\VMCC Photos" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:52962:localhost" />
</bindings>
</site>
当我将项目加载为“网站”时,它会在那里显示虚拟目录,并且在调试时可以正常工作。但是,我不想将其开发为“网站”,因为我无法发布它。作为“网站”工作时,我的旧发布配置文件均不可用。
那么 VS2015 只是不支持这个还是我缺少一些新设置?
编辑 1
根据这篇文章...Creating virtual directories in IIS express
我把它改成这样:
<site name="VMCC" id="1993109772">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:\Users\myuser\Documents\Visual Studio 2013\Projects\VMCC\VMCC" />
<virtualDirectory path="/Photos" physicalPath="c:\VMCC Photos" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:52962:localhost" />
</bindings>
</site>
但是从VS2015调试时还是不行。
【问题讨论】:
-
您的照片设置显然是一个“应用程序”,而不是一个虚拟目录。
-
Lex- 这是我以前知道的唯一方法。请参阅编辑 1。这对我来说看起来更好,因为它没有绑定到自己的应用程序。你会这样做吗?
-
更改正常。然后请定义什么是“不工作”。没有人能神奇地看到你的屏幕。
-
当代码尝试通过 Server.MapPath 访问“~/Photos/”中的文件时,它不会进入虚拟目录。它只是试图将它们放在常规项目目录中。在 VS2013 和成熟的 IIS 服务器上调试时,相同的代码行有效,所以我知道它是正确的。 VS2015 IIS Express 有一些奇怪或错误。
-
这可能是由您编辑的错误配置文件引起的。 VS 2015 在解决方案文件夹中使用 .vs\config\applicationHost.config,而不是在您的文档文件夹中。
标签: visual-studio-2015 iis-express virtual-directory