更改项目URL Visual Studio

问题描述 投票:10回答:2

我希望能够在localhost以外的域以及任何子域上调试我的ASP.NET MVC应用程序,换句话说:

http://domain.dev http://*.domain.dev

我尝试过以下方法:

  1. 修改Hosts文件
  2. 为* .domain.dev添加一个返回127.0.0.1的主机记录
  3. 更改项目属性中的“项目URL”。

然而,没有任何工作。当我开始调试时,我得到一个页面,显示“服务不可用”或“无效的URL”。

我错过了什么?

附:我正在使用Visual Studio 2013

asp.net-mvc visual-studio-2013
2个回答
15
投票

对于Visual Studio 2015,上述答案中的步骤适用,但applicationhost.config文件位于新位置。在您的“解决方案”文件夹中按照路径

\.vs\config

在该文件夹中,您将看到applicationhost.config文件

或者,您可以在解决方案文件夹中搜索.config文件并找到它。

我个人使用以下配置:

enter image description here

在我的hosts文件中有以下内容:

127.0.0.1       jam.net
127.0.0.1       www.jam.net

以及我的applicationhost.config文件中的以下内容:

<site name="JBN.Site" id="2">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="C:\Dev\Jam\shoppingcart\src\Web\JBN.Site" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:49707:" />
            <binding protocol="http" bindingInformation="*:49707:localhost" /> 
    </bindings>
</site>

请记住以管理员身份运行visual studio 2015的实例!如果您不希望每次我推荐这样做:

How to Run Visual Studio as Administrator by default

我希望这对某人有所帮助,我在尝试升级到Visual Studio 2015时遇到了问题,并意识到我的配置都没有被转移。


7
投票

您需要为hosts文件中的每个子域实际创建一条新记录。你不能使用通配符。

127.0.0.1 domain.dev
127.0.0.1 foo.domain.dev
127.0.0.1 bar.domain.dev

虽然看起来可以通过一些额外的工作来完成,但请参阅this question了解更多详情。

您还需要在访问URL时包含端口号。当然,浏览器将使用VS中分配的端口号指向http://foo.domain.dev:0000

如果您使用的是Visual Studio开发服务器,那就是它的全部内容。如果使用IIS Express,则需要更多工作。

然后,您需要确保在IIS applicationhost.config文件中有记录:

<site name="YourApplication" id="25">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="C:\Path\To\Your\App" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:2750:foo.domain.dev" />
    </bindings>
</site>

更新

<site name="DomainProject" id="18">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="C:\Users\William\Source" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:32939:domain.dev" />
        <binding protocol="http" bindingInformation="*:32939:domain2.dev" />
    </bindings>
</site>
© www.soinside.com 2019 - 2024. All rights reserved.