Windows XP IIS Manager v1.7






4.96/5 (29投票s)
本文介绍了一种在 Windows XP IIS 中创建和管理多个站点的方法。
背景
目前,我没有 Web 服务器(Windows xxxx 服务器),正如大家所知,在 Windows XP 上构建多个网站并不容易。即使你有服务器,在将内容上传到生产服务器之前,你总需要在本地计算机上测试一些东西,而这个解决方案可能会有所帮助。
Windows XP IIS
问题 1:只有一个站点 - 微软提供了“管理脚本”,所以我们可以创建更多的站点,但这些脚本使用起来很麻烦。
解决方案:所以我决定开发一个工具来消除这个麻烦。
问题 2:一次只有一个站点在运行 - 这其实不算太糟糕,但我不想每次都要打开“Internet Information Services”来切换站点。
在完成这个工具后,我认为这将是我的第一篇文章。为什么?因为也许其他人也遇到了同样的问题,而且,在我制作这个工具的过程中,我发现关于“使用 C++ 控制 IIS”的信息很难找到。所以,我提供了一个“现成的工具”和示例代码。
即使知道 .NET Web 编程有想要将“默认 Web 站点”作为开发根目录的坏习惯(如果有人知道在本地使用其他站点的方法,我会很高兴),我认为这个工具可能会很有用……
现在开始……
EasyIIS 工具
这个工具提供了一种创建、删除和修改现有站点某些属性的方法。我没有实现 IIS 管理单元的“所有”功能,因为我想让它保持简单。我想让它尽可能简单,只需点击几下即可创建站点。对于附加功能,我们总有 IIS 管理单元!
它还将更新 HOSTS 文件,这样你就可以通过输入类似 http://yousite 的内容来访问站点,而不是使用 https://。这在防止出现“临时 Internet 文件”问题(如 CSS 和 JS)时非常方便,因为你可能(像我一样)使用了一些全局 CSS 文件,这些文件对每个站点都不同,但名称相同。
例如:http://testsite1/global.css 和 http://testsite2/global.css。
如果你不使用 HOSTS 文件通过输入 http://testsite1 和 http://testsite2 来访问不同的站点,你将不得不通过输入 https:// 来访问这两个站点,因此 global.css 文件对于两个站点来说将具有相同的 URL(https:///global.css),这可能会导致一些奇怪的问题,因为“临时 Internet 文件”会认为它们是同一个文件。
这很烦人,所以我开始管理 hosts 文件。
Windows XP 每次只能运行一个站点,所以有一个选项可以在启动新站点之前停止当前正在运行的站点。
关注点
这些要点会在“读者眼中”闪光,但对我来说,关键是我很难找到关于如何用 VC++ 实现这些功能的信息。
你永远不知道何时需要创建一些炫酷的工具来访问 IIS,例如,在某些内部网上。想象一下,你有一个服务器,上面有很多客户站点,而你想让你的“技术人员”能够访问 IIS 来更改一些东西。我敢打赌,你不会想让他们随意使用 IIS 管理单元提供的所有功能,而且他们还会占用(仅有的)两个宝贵的终端服务连接,甚至更多……
想象一下,你的商务部门因为某种原因想能够“削减”客户服务。我想你永远不会给他们服务器访问权限,但你可能不能随时随地去服务器为他们停止/启动站点。
所以你可能想开发某种 IIS 后台,让他们可以通过浏览器访问一些选项……好吧,好吧,我已经听到有人说他们可以用 .NET 来完成,而且不需要 C++。没错,但这并不是这里的重点,重点是你可能和我一样,热爱 ISAPI,如果是这样,每次遇到类似的事情,我们都会立即想到“如果……ISAPI……”。
这就是重点……为你提供一些能够做到这一点的代码,如果你因为某种原因很难自己摸索。
虽然这不是一个 ISAPI,但它仍然是用 C++ 编写的,并且“绑定”这段代码到一个 ISAPI 不会很难。
关于这个项目,我想说的是,在启动另一个站点之前,我总是会停止当前运行的站点(如果该选项已启用),这在 Windows XP 上是必需的,因为一次只能运行一个站点。要启动一个站点,我必须停止另一个站点,否则启动命令会失败。但真正的问题出现在你删除正在运行的站点而不先停止它的时候!如果你不执行 IISRESET 或重启,你将无法启动另一个站点。
警告
它一直对我有效,但我强烈建议你在使用前进行测试。我没有测试“所有场景”!!
历史
2005-03-03 v1.7 首次发布。