如何在IISExpress上使用带有localhost的子域?

SB2*_*055 27 asp.net iis localhost iis-express

我现在通过localhost:5252本地服务我的MVC应用程序.

我正在尝试通过让localhost和contoso.localhost指向我的Web应用程序实例来设置我的应用程序来测试多租户.

我使用相应的条目设置我的hosts文件:

127.0.0.1       contoso.localhost
Run Code Online (Sandbox Code Playgroud)

但是我不确定我还需要做些什么才能完成这项工作.现在我在导航时只获得一个标准的IIS8页面,即使我在IIS管理器中没有做任何事情.

我试图避免在本地使用IIS,因为一切都在使用IISExpress.有没有简单的方法来实现这一目标?

bea*_*vel 39

这可以通过编辑applicationHost.config文件来完成

C:\Users\yourProfile\Documents\IISExpress\config\applicationHost.config
Run Code Online (Sandbox Code Playgroud)

在进行配置更改时,Visual Studio通常会为您编辑此文件,但您可以手动编辑.找到您正在使用的特定站点,以下绑定应该有效:

<bindings>
   <binding protocol="http" bindingInformation="*:5252:localhost" />
   <binding protocol="http" bindingInformation="*:5252:contoso.localhost" />
</bindings>
Run Code Online (Sandbox Code Playgroud)

你可以真正地将端口更改为你想要的任何东西,这样你就可以使用80来节省一些打字.继续添加绑定以根据需要填写多租户.

如果您正在寻找更多信息,我建议您查看Scott Hanselman关于IIS Express和SSL的博客文章.

更新

使用VS 2015和.NET核心,applicationHost.config已移至基于目录的系统,用于存储配置而不是全局配置文件.新位置与您的项目相关:

.vs\config\applicationHost.config

相同的编辑主体适用于此文件,但在使用TFS源代码控制时,VS 不会像在全局文件中那样在分支之间进行更改时编辑文件.

关于域的通配符注释,在IIS 10之前不支持通配符主机名.因此,它可能在IIS Express 10中受支持,但可能不在之前.

细分bindingInformation是:

bindingInformation="<IPAddress>:<Port>:<Hostname>"

  • 是否可以绑定`*.localhost`? (7认同)
  • @beavel我试过这个,但我仍然得到400个不好的请求..有人想过吗? (2认同)
  • 考虑您必须以管理员身份运行visual studio,并且在.NET Core项目中将配置文件地址更改为"\ your-Project-root\.vs\config\applicationhost.config". (2认同)
  • 最初没有工作.将127.0.0.1 mysub.localhost添加到C:\ Windows\System32\drivers\etc\hosts文件似乎有所帮助. (2认同)