我希望能够在localhost以外的域以及任何子域上调试我的ASP.NET MVC应用程序,换句话说:
http://domain.dev http://*.domain.dev
我尝试过以下方法:
然而,没有任何工作。当我开始调试时,我得到一个页面,显示“服务不可用”或“无效的URL”。
我错过了什么?
附:我正在使用Visual Studio 2013
对于Visual Studio 2015,上述答案中的步骤适用,但applicationhost.config文件位于新位置。在您的“解决方案”文件夹中按照路径
\.vs\config
在该文件夹中,您将看到applicationhost.config文件
或者,您可以在解决方案文件夹中搜索.config文件并找到它。
我个人使用以下配置:
在我的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时遇到了问题,并意识到我的配置都没有被转移。
您需要为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>