如何使用 Visual Studio 2015 为网站项目配置不同的虚拟目录

cos*_*sta 4 asp.net iis-express asp.net-web-api visual-studio-2015

我有在 VS 2012 中开发的 c# 网站类型项目。我想使用 VS 2015,但无法指定与默认根目录 / 不同的虚拟目录。

在 vs 2012 中,sln 文件中有以下几行:

VWDPort = "59903"
VWDDynamicPort = "true"
VWDVirtualPath = "/myapp"
Run Code Online (Sandbox Code Playgroud)

一切都按预期工作,即当应用程序在浏览器中启动时,它会转到:http://localhost:59903/myapp

我在 VS 2015 中打开解决方案,VS 创建了一个隐藏的 .vs 文件夹,将 applicationionhost.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>
Run Code Online (Sandbox Code Playgroud)

我尝试使用应用程序和 virtualDirectory 元素的路径设置,但没有任何效果。

如果我设置应用程序元素的路径,则不会加载网站项目。如果我保持原样并将 virtualDirectory 的路径设置为 /myapp,我会收到 HTTP 错误 500.0 - 内部服务器错误,模块:AspNetAppInitializationFailureModule,处理程序:PageHandlerFactory-Integrated-4.0 或 ExtensionlessUrlHandler-Integrated-4.0,具体取决于我的 url尝试访问。

如果我将路径设置为“/”,则一切正常。

让我困惑的是,当我在解决方案资源管理器中选择网站项目时,属性窗口中的 SSL URL 和 URL 属性被禁用。我不知道它们是从哪里来的。我认为 URL 可能来自 applicationhost.config 文件。

在网站属性页窗口中的“开始选项”下,我有“开始操作”=“使用当前页面”、“服务器”=“使用默认 Web 服务器”。

我在 Windows 2008 R2 SP1 VM 上使用带有 Update 3 的 VS2015(不要问我为什么会这样)。

有任何想法吗?

我确实做了一些研究,但我找不到任何东西。另一件晦涩难懂的事情(imo)是能够在 IIS Express 中创建站点或虚拟目录,方法是选择:“新建网站”->“浏览”-> 在左侧选择“本地 IIS”。我不太确定这与现有的网站项目有什么关系。

谢谢

cos*_*sta 5

具有以下配置使其工作,即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>
Run Code Online (Sandbox Code Playgroud)

请注意存在两个应用程序元素。

另请参阅:IIS7:“无法识别的配置路径”错误的可能原因