使用IIS Express自定义域名
使用IIS Express自定义域名
传统上,我在本地开发服务器上使用自定义域名。类似于:
dev.example.com dev.api.example.com
这为我在使用外部API(如Facebook)时提供了很大的灵活性。在过去,这在集成的Visual Studio开发服务器上非常好用,因为我只需要将CNAME添加到那些DNS记录中,指向127.0.0.1
。
然而,我无法使这个方法在IIS Express上工作。我已经尝试了所有可以想到的方法,但它似乎都失败了。我甚至为IIS Express添加了正确的XML配置到applicationHost.config
文件中,但它似乎不认识这些条目,因为它不像真正的IIS一样。聪明。
每当我输入这行并尝试请求http://dev.example.com:1288
时,我会收到以下消息:
Bad Request - Invalid Hostname
有人知道我是否漏了什么显而易见的东西吗?或者IIS Express团队真的没有预见到这种情况吗?
对于 Visual Studio 2015,上述答案中的步骤是适用的,但是 applicationhost.config
文件的位置已经改变了。在您的 "解决方案" 文件夹中,按照路径,并且如果您升级了并且在您的计算机上有两个版本的 applicationhost.config
,那么这可能会令人困惑。
\.vs\config
在这个文件夹中,您会看到您的 applicationhost.config 文件。
或者,您也可以在解决方案文件夹中搜索 .config 文件并以此方法找到它。
我个人使用了以下配置:
在我的 hosts 文件中包含以下内容:
127.0.0.1 jam.net 127.0.0.1 www.jam.net
在我的 applicationhost.config 文件中包含以下内容:
记得要以管理员身份运行您的 Visual Studio 2015 实例! 如果您不想每次都这样做,我建议您使用以下方法:
我在尝试升级到 Visual Studio 2015 时遇到了问题,并意识到我的所有配置都没有被保留下来。
这是对我有效的方法(更新于VS 2013,查看修订历史记录来查看2010年的方法,对于VS 2015,请参见此链接:https://stackoverflow.com/a/32744234/218971):
-
右键单击 Web 应用程序项目
属性
Web
,然后按如下配置Servers
部分:- 从下拉列表中选择 IIS Express ▼
- 项目 Url:
http://localhost
- 覆盖应用程序根 URL:
http://dev.example.com
- 单击 创建虚拟目录 (如果在此处出现错误,则可能需要禁用 IIS 5/6/7/8,将 IIS 的
默认站点
更改为除端口:80
以外的任何内容,请确保 Skype 不使用端口 80 等。)
-
可选:将
Start URL
设置为http://dev.example.com
-
打开
%USERPROFILE%\My Documents\IISExpress\config\applicationhost.config
(Windows XP、Vista 和 7),并在
配置块中编辑站点定义,如下所示: -
如果运行 MVC:确保
applicationPool
设置为一个“Integrated”选项之一(如 “Clr2IntegratedAppPool”)。 -
打开您的
hosts
文件 并添加行127.0.0.1 dev.example.com
。 -
► 启动 您的应用程序!
一些很棒的评论建议:
- 您可能需要以管理员身份运行 Visual Studio。
- 如果您想让其他开发人员看到您的 IIS,请运行
netsh http add urlacl url=http://dev.example.com:80/ user=everyone
- 如果您想让该网站适用于所有主机,请设置
bindingInformation="*:80:"
。可以使用任何端口,80 只是方便。要解决所有主机,您需要以管理员身份运行 Visual Studio