4

我想在 asp.net 站点中测试一些子域功能。我只是为了编辑主机文件并添加 127.0.0.1 subdomain.domain.com 而阅读,这应该可以。

但我的好像没有。我已经刷新了 dns,重新启动,尝试了新的浏览器,但仍然收到错误 500。

当我从 Visual Studio 正常运行 asp.net 站点时,它会转到http://localhost:17365/. 我如何获得这个的IP地址?

我想我没有得到完整的画面并且遗漏了一些片段。

我运行 netstat -n 并看到该站点在 [::1]:17365 上运行,也许这就是为什么它不能在 ipv4 下运行?

4

10 回答 10

5

在 Visual Studio 中,当您运行该站点时,首先更改Website Properties > Use Dynamic Portsto False,然后设置Port Numberto 80,然后运行它。

默认情况下,它会启动http://localhost:80,但是在您的浏览器访问subdomain.domain.com中,它将指向您站点的调试实例(假设您127.0.0.1 subdomain.domain.com的主机文件中仍然有该实例)。

于 2013-04-05T14:46:00.517 回答
4

解决方案非常简单。编辑host文件后,添加一行:

127.0.0.1 subdomain.domain.com

你运行你的网站,个人网站启动,然后你进入浏览器

http://localhost:[PortNumber]/ (例如http://localhost:17365/:)

只需将其更改为

http://subdomain.domain.com:[PortNumber]/(例如http://subdomain.domain.com:17365/:)

用手在浏览器的网址上输入它,它就会起作用。

于 2013-04-05T15:05:26.647 回答
2

有人注册了指向 127.0.0.1 的“lvh.me”

所以你可以使用: http: //lvh.me http://something.lvh.me

于 2013-07-24T08:16:47.893 回答
2

我只是去Project Properties > Web和下Servers,我选择Use Local IIS Web server并设置Project Urlsubdomain.domain.com

在此处输入图像描述

于 2013-04-05T14:47:54.777 回答
0

当您通常在 Visual Studio 中启动一个 asp.net 站点时,它使用 Cassini 网络服务器。我不确定您是否可以为 Cassini 配置绑定。

我的建议是在 IIS 中配置一个网站或虚拟目录,并绑定到 subdomain.domain.com,看看这里如何做到这一点:添加绑定到站点

您的主机文件应包含以下内容:

127.0.0.1    subdomain.domain.com

然后 subdomain.domain.com 的请求将被重定向到您的本地 IIS Web 服务器(在端口 80 上),因为绑定配置 IIS 知道在哪里寻找您的网站。

在 Visual Studio 中 Web 项目的属性中,您可以配置为使用Web tab.

于 2013-04-05T14:56:19.990 回答
0

您还必须配置您的网络服务器。好的,您更改了主机文件。您的系统 (dns) 知道与主机一起去哪里 (127.0.0.1)。但是您的网络服务器仍然对 subdomain.domain.com 一无所知,并且与它没有任何关联。

于 2013-04-05T14:47:59.950 回答
0

我不确定 Visual Studio 开发服务器是否可以处理与 localhost 以外的任何内容的绑定。我认为您唯一可以更改的是端口号。

你有几个选择。

1) 安装 IIS Express(或完整的 IIS,如果需要)并配置 Visual Studio 以指向您在其中设置的站点。您可以手动设置绑定subdomain.domain.com,它非常灵活。看看这个答案:Using Custom Domains With IIS Express

2)安装像rinetd这样的端口转发器(我认为如果您的主机文件中有条目,这应该可以工作)。您应该能够映射subdomain.domain.com:<some port number>localhost:17365. 请注意,rinetd 不会检测到您正在使用的域(只是底层 IP 地址,即 127.0.0.1),因此最好为您正在处理的每个项目使用不同的端口。

于 2013-04-05T14:59:27.397 回答
0

我正在使用 VS 2017 和 Webforms(不要这么说)。

  1. 在解决方案 (.sln) 文件(在记事本中)中,我将端口更改为 8080。这可以在多个属性中找到,包括 VWDPort、Debug.AspNetCompiler.VirtualPath、Debug.AspNetCompiler.TargetPath、Release.AspNetCompiler.VirtualPath 和 Release。 AspNetCompiler.TargetPath
  2. 在 applicationhost.config 文件中,我添加了:
<binding protocol="http" bindingInformation="*:8080:subdomain.domain" />

也在记事本中完成。确保此文件中没有任何重复或旧条目用于绑定。在步骤 1 中更改端口后,您可能会得到一个自动生成的带有旧绑定的重复条目。此外,请确保您编辑了正确的 applicationhost.config 文件。此文件位于不同的位置,具体取决于您的 VS 版本。

  1. 在 Powershell 中,运行:“netsh http add urlacl url= http://subdomain.domain:80/ user=everyone”
  2. 在您的主机文件中(我的位于 C:\Windows\System32\drivers\etc 中)将“127.0.0.1 subdomain.domain”添加到您的主机列表中。您必须是管理员(右键单击记事本,以管理员身份运行)
  3. 以管理员身份运行 VS。这将使端口保持为 80。如果不以管理员身份运行,您将获得一个随机端口号,您的 .sln 文件将使用此编号自动编辑,并且您将在 applicationhost.config 中获得重复的绑定。

以管理员身份运行很烦人,但这是我可以让端口不改变的唯一方法。此外,我尝试使用其他端口,例如随机分配的 VS,但不断遇到来自 IIS 的 503 错误。

于 2019-01-22T23:52:07.427 回答
0

转到 applicationhost.config,您可以在 Windows 托盘上找到。 在 IIS 中查找当前正在运行的项目的 application.config

现在找到

<webLimits>
......
<sites>
.....
<site name="[YourProjectName]" id="[YourProjectID]">
                <application path="/" applicationPool="Clr4IntegratedAppPool">
                    <virtualDirectory path="/" physicalPath="[Your Project Path]" />
                </application>
                <bindings>
                    <binding protocol="http" bindingInformation="*:50569:[Remove localhost from here]" />
                </bindings>
            </site>
.....
</sites>
......
<webLimits />

从 bindingInformation 中删除 localhost。

最后,以管理员身份运行 VisualStudio

于 2018-09-04T15:07:20.757 回答
-1

使用它,如果我添加此代码,您可以获得 IP 地址列表, 127.0.0.1请确认这是否是您要查找的内容,否则我将删除答案

foreach (IPAddress address in Dns.GetHostAddresses("localhost"))
{
    Console.WriteLine(address.ToString());
}
于 2013-04-05T15:00:55.953 回答