【问题标题】:How to properly setup a dev server for use on intranet如何正确设置开发服务器以在 Intranet 上使用
【发布时间】:2012-05-02 03:09:58
【问题描述】:

别着急,你可能会说这属于服务器故障,但我是从开发人员的角度来问这个问题,而不是系统管理员。我可以获得不同的结果,并查看它在代码中的哪个位置(有点)!我不是系统管理员,但我觉得其他开发人员可能会遇到同样的问题(我们这些在没有 IIS 服务器管理员的小公司中的开发人员)。我在 SF 上问了一个类似的问题,但他们并没有真正与我的问题联系起来。

作为一名开发人员,我很难找到一种快速简便的方法来设置 IIS/ASP 开发服务器以供本地网络上的多人使用。整个想法是让它不在现场机器上。它只是在我们的一张桌子上运行的一台小型笔记本电脑。

我认为这很容易。我一开始做的是 1)固定IP地址 2) 将我的各种开发站点的绑定编辑为 10.0.1.115 在不同的端口(如 2020 等)上

这似乎在一段时间内运行良好。编码,编码,编码......但是随着我的 C# 页面变得越来越复杂,响应时间越来越长,响应越来越大,奇怪的奇怪事情开始发生。 一些症状:

1) 我会在 Fiddler 中无缘无故地看到对错误 IP 地址(如 10.0.1.75)的不相关请求。然后它会一遍又一遍地重试,阻止浏览器 UI。我搜索了所有代码,所有主机文件,没有任何地方引用此 IP。这个请求似乎让浏览器挂起“等待 10.0.1.75 并且浏览器会旋转,即使在提琴手原始请求完成并且它实际上下载了链接的 CSS 文件!!! WTF?

2) 响应时间慢。某些页面非常慢。我把它放在全国各地的生产服务器上,它的加载速度提高了 10 倍。

3) 真正离奇的事情:

   // C#:

   // I can see this before the odd request gets made! weird, right?
   Response.Write("hello"); 

   // then after see "hello", fiddler says request is made to some stupid unrelated ip    

   Response.Write(strOutput);
   // then I never see this output string (a bunch of HTML) rendered in the browser
   // it just spins on "hello" page asking for the wrong IP address in the gray status bar
   // BUT it shows up as proper HTML in fiddler, and also downloads all the CSS
   // that was referenced to by the HTML      

就像我说的,我可以将它部署到具有适当域的站点,并且一切正常,使用基本完全相同的 webconfig!

我在另一个站点上的不同站点上遇到类似的奇怪/缓慢行为,该站点在生产中也可以正常工作(并且是完全不同的代码风格)。

是的,我已经在多台机器上尝试过使用和不使用代理。

简单(简短的 C# 页面可以正常工作)。

花了很长时间来挖掘这个问题,但这里没有真正的答案: https://serverfault.com/questions/216093/site-loads-very-slow-if-i-use-ip-and-works-normal-when-i-use-domain-name-why

我不在乎这是否会被否决而你称我为 doofi。为此,我已经用头撞墙了 6 个小时。

我不应该使用 IP 地址吗?我应该设置自己的 DNS 而不是只使用固定 IP 吗?我不想弄乱我的网络并随机设置 DNS...呃。

更新

所以看起来可能是主机问题?我查看了同一开发服务器上的另一个应用程序,它获得了 302 重定向 HTML 链接文件到不正确的 IP!但只是根,而不是整个文件名,比如 10.0.1.75 而不是我期望的 10.0.1.75/somejsfile.js。我的代码中没有任何地方这样做...使用固定 IP 有什么奇怪的地方吗?

所以这就解释了为什么页面不会渲染,因为 DOM 没有完全构建......

【问题讨论】:

    标签: .net iis networking asp-classic dns


    【解决方案1】:

    我不会为使用不同的端口而烦恼。在您的 DNS 服务器中,为 *.dev.mycompany.com 添加一个条目以指向感兴趣的 IP。如果您不想弄乱您的 DNS,您可以修改 C:/Windows/System32/Drivers/Etc/Hosts 文件中的主机文件,如果您无权访问您的感兴趣的每个开发网站,请添加一个条目DNS 服务器。如果你走这条路,你必须在每台开发机器上这样做。仅供参考,以管理员身份打开记事本并打开文件,然后在 Vista 上保存权限问题。

    在您的开发机器的 IIS 设置中,将 website1.dev.mycompany.com、website2.dev.mycompany.com 添加到每个相应网站的绑定中。

    然后,当您准备好进行生产时,您只需将 website1.dev.mycompnay.com 更改为 website1.mycompany.com。您的 DNS 应处理 website1.mycompnay.com。您的 DNS 或主机文件可用于确定您的 website1.dev.mycompany.com,具体取决于您的限制或您希望如何处理。

    换句话说,您在代码中的任何地方都不依赖 IP 或端口。一切都在使用 DNS 解析。这仅取决于您的解决方案在哪里...在公司 DNS 服务器上...或在使用 hosts 文件的每台开发机器上。

    我在相对较小的公司工作,这就是我们处理这些问题的方式。要么工作。 DNS 是最灵活的,因为它不需要在每台开发机器上进行更改,但是当只有 1-3 名开发人员在网站上工作时,我们使用了主机文件方法。

    顺便说一句,我什至使用生产 SQL Server 上的主机文件来访问我们网络之外的链接服务器,这样我就可以给它一个复制所需的特定名称。可能不受 MS 支持的支持,但它可以工作。

    【讨论】:

    • 我的意思是,我们只是在一小群路由器和交换机上。我们并没有在我们的实际服务器上进行演示——重点是,它只是在我们的一张桌子上运行的一台小型笔记本电脑。在 FTP 站点上工作很慢并且会导致问题。部署时,我们将存储库检出到真实服务器上的正确应用程序中。
    • 您能更详细地解释一下您的设置吗?
    • 刚刚使用 IIS 7 运行 server 2008 并手动固定 IP 地址。我有几个应用程序映射到本地 IP 10.0.1.115,每个应用程序具有不同的端口。应该很简单吧?但我感觉使用 IP 而不是真正的 DNS 会有不同的表现。
    • 我不太确定为什么在 DNS 上使用 IP 的行为会有所不同。我想我的观点是,即使您必须依赖修改主机文件,DNS 也更加直接。它更容易记住,而不是修改 ip,您只需在部署时删除配置文件中的 .dev。
    • 是的,使用 hosts 文件似乎可以缓解一些问题。对于某些表单页面,我仍然会收到奇怪的 302 文档移动和缓慢加载,但最终它们确实会加载。仍然无法弄清楚为什么它会请求这些 IP!
    【解决方案2】:

    检查您的防火墙或代理配置可能会发现导致问题的原因。

    【讨论】:

    • 没有防火墙——这是我们一张桌子上的笔记本电脑。软件防火墙全部关闭,因为它们位于我们本地网络上的主防火墙后面,因此是 IP 地址。
    猜你喜欢
    • 2014-07-15
    • 2011-01-09
    • 2016-01-18
    • 1970-01-01
    • 2021-07-01
    • 2021-05-10
    • 2013-06-07
    • 2012-09-04
    • 2012-06-21
    相关资源
    最近更新 更多