【问题标题】:Setup local IIS7 for testing websites为测试网站设置本地 IIS7
【发布时间】:2010-01-15 07:48:50
【问题描述】:

除了在本地测试网站时修改 HOSTS 以设置临时域之外,还有其他选择吗?我在 Win7 上使用 IIS7。

我不想使用 /localhost/domainname。我宁愿做 /domainname 所以我不必担心文件的路径等。我的网站已设置为文件的路径相对于根文件夹而不是页面。

【问题讨论】:

  • 如果您的路径是相对的,那么为什么基本 URL 很重要?

标签: iis testing hosting


【解决方案1】:

除非您的代码明确检查域名,否则您应该能够在 II7 上部署并通过http://localhost 进行测试。

不过,这种方法有一些注意事项:

  • 如果您使用的第三方 API 需要与您的应用程序的域名相关联的密钥,您可能需要请求两个密钥 - 一个用于域名(用于 PROD 目的),一个用于 localhost(用于 DEV 目的)。我同时使用 Google Ajax API 和 Facebook Connect 密钥。
  • http://localhost 在 IE 中的安全区域与常规互联网站点不同,因此如果您的应用程序使用任何需要跨域通信的 AP(如 Facebook Connect),则在 IE7 上测试可能会遇到问题。在 Chrome 上运行起来就像一个魅力,在 IE8 上似乎也能正常运行。
  • 如果您同时处理多个应用程序,则不能让所有应用程序同时侦听端口 80。因此,必须将某些应用程序移至 http://localhost:8080 或其他端口。

我的方法是在开发过程中在端口 808x 上运行 VS Dev WebServer (Cassini),并在端口 888x 上部署到本地 IIS7(使用 CruiseControl.Net)。这使我可以在处理代码时使用 VS 轻松调试,但仍然在 IIS7 上将站点设置为中等信任。

我在目标域上还有一个主机名指向我的开发机器,因此 IIS7 实例可以作为 http://localhost:888xhttp://dev.domain.com:888x 使用,这使我还可以测试与 Google Ajax 和 Facebook Connect 的域集成蜜蜂。当然,这需要对域 DNS 的控制以及向其中添加 A 记录的能力。

但是,请注意,此设置中的任何内容都不需要对域 URL 进行实际测试。

【讨论】:

  • 不同端口上的每个站点都是最简单的方法 - 并且 +1 用于指出有趣的警告。
  • 我喜欢你的话。因为我同时在多个站点上工作,所以我希望每次我想在部署之前测试站点时不必更改 IIS 中的 localhost 以指向不同的服务器。但是,回想起来也许这就是我的解决方案。我在 Dreamweaver 中做 .net 和 php 项目,所以一直在寻找一种对两者都适用的解决方案。虽然我完全同意,但 Cassini 是 .Net 的最佳选择。
  • 只需使用不同的端口并将两种解决方案部署为 IIS7 网站 - 您的 .Net 到 localhost:8881 和您的 PHP 到 localhost:8882。这样您就可以同时运行两者。
  • 这是个好主意!谢谢。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多