Jos*_*osh 17 windows asp.net iis
我正在尝试开发一个包含多个子域的asp.net站点.我是网站的新手,特别是asp.net.但是,看起来通配符子域是使用dns条目和Web服务器配置的组合正确设置的 - 这在我的开发机器上不会发生.因此我手动在我的Windows 主机文件中插入条目:
127.0.0.1 localhost
127.0.0.1 abc.localhost
127.0.0.1 xyz.localhost
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试询问Request.Url属性时,没有可见的子域.例如,如果我点击http://abc.localhost:1660/了浏览器,我会http://localhost:1660/从中获取Request.Uri.ToString(); 在abc刚刚走了?
我不知道为什么hosts文件的工作方式是这样的,但有没有其他方法可以用来将子域名放到我的本地Web应用程序中?谢谢你们.
请注意,我只使用内置的asp.net开发服务器而不是完整的iis服务器.(本周末我无法访问完整的IIS,但我仍然想知道这是否会有所帮助.)
Joe*_*ite 11
不知道标题,但我使用的一个鲜为人知的技巧是所有127.*地址都是localhost地址,而不仅仅是127.0.0.1.您实际上可以运行一个服务器监听127.0.0.1端口80,另一个Web服务器实例监听127.0.0.2端口80.那么你的名字是127.0.0.1 localhost,127.0.0.2可以是abc.localhost(或abc.mydomain) .com这样你就可以针对本地网络服务器测试真实的实时网址)等.
Vai*_*arg 11
我使用的是Windows 7,IIS 7.5,VS 2008,SQL Server 2005
我能够在localhost上成功模拟子域名,在etc/hosts中放入以下行
127.0.0.2 myapp.localhost.com
Run Code Online (Sandbox Code Playgroud)
并且,在IIS中,我设置了一个新的网站,对绑定部分进行了以下修改:
Hostname = myapp.localhost.com
IP address = 127.0.0.2
Run Code Online (Sandbox Code Playgroud)
我还创建了一个新的应用程序池,但没有必要.您可能必须更改用于处理请求的auth用户.我与默认的IIS用户有SQL连接权限错误.
IIS>Application Pools>>Right Click on your pool>Advanced Settings>Identity = LocalSystem
Run Code Online (Sandbox Code Playgroud)
您可以使用" Request.Headers ["HOST"] " 获取子域完整的请求域.这是一个返回当前请求的子域的简单方法.此方法还假设您在域之后有一个".COM",".NET"等,就像真实的Web一样.因此,您需要更改您的HOSTS文件以包含"localhost.com","abc.localhost.com"等.
public string subdomain()
{
string host = Request.Headers["HOST"];
if (!string.IsNullOrEmpty(host))
{
var parts = host.Split('.');
if (parts.Length > 2)
{
return parts[0];
}
}
return string.Empty;
}
Run Code Online (Sandbox Code Playgroud)
我正在搜索这个问题,这是一篇实际帮助我解决这个问题的文章:https://web.archive.org/web/20090813174916/http: //blogs.securancy.com/post/ASPNET-MVC -Subdomain-Routing.aspx
| 归档时间: |
|
| 查看次数: |
10864 次 |
| 最近记录: |