Skip Navigation Links首页 > 技术热点与追踪 > 详细信息

IIS 内幕

出自: technet
IIS 内幕是一个每月专栏,主要用于解答如何排除故障及充分利用 Microsoft Internet Information Services 的大部分功能方面的问题。

IIS Insider

其中所述的示例公司、组织、产品、域名、电子邮件地址、徽标、人员、地点和事件都是虚构的。与现实的公司、组织、产品、域名、电子邮件地址、徽标、人员、地点或事件没有任何联系,请勿对号入座或妄加推断。


DotNetNuke 和 Internet Information Services (IIS)

问:

我安装了 DotNetNuke,它在本地主机上运行良好,但任何人都无法从外部看到我的网页。我查看了 default.htm 页面,它能正常运行。我需要在 IIS 中进行哪些更改,才能从客户端而不是服务器运行我的 DotNetNuke 站点?

答:

DotNetNuke 是一个流行的入口框架,它使用 ASP.NET 并在 IIS 上运行。您所描述的现象与将网站设置为仅对本地主机 IP 地址 127.0.0.1 应答,或将网站设置为重定向到 URL http://localhost/ 时,IIS 可能发生的现象类似。但在本例中,实际上需要对 DotNetNuke 的设置进行更改。

DotNetNuke 使用一种称为 URL 重定向的技术将客户端请求定向到相应的入口和页面。这种重定向依赖于所请求的 URL,有点象主机标头,不过位于应用层。当您使用一个 URL 安装 DotNetNuke,而试图使用另一个 URL 访问它时(例如:从 http://localhost/ 安装并试图从 http://adatum.com 访问),就会出现您所描述的问题。

要修复这一问题,需在 DotNetNuke 中为所请求的 URL 添加一个入口别名:

1.

使用 Host(主机)帐户登录到 DotNetNuke 入口,然后单击 Admin(管理员)菜单。

2.

在下拉菜单中,选择 Site Settings(站点设置)菜单。

3.

Portal Aliases(入口别名)下,选择 Add New HTTP Alias(添加新的 HTTP 别名),然后键入要用来访问此入口的 URL。(例如,如果您要以 adatum/dnn 来访问这个 DNN 入口,您就应将它作为一个别名添加。)

注意:DotNetNuke 是 Perpetual Motion Interactive Systems, Inc. 的注册商标。


将 Web 请求重定向到 IP 地址

问:

我在托管公司有一个网站,但我想自己管理该网站。我将 IIS 与 ISP 分配给我的 IP 地址一起使用。如果我想要以 http://www.widgets-inc-10.com 访问我的网站,需要怎么做?

答:

将 IIS 服务 Web 请求定向到特定 IP 地址。IIS 不确认或识别您用于访问系统的任何名称。当然,对于您来说,记住 widgets-inc-10.com 这样的名称要比记住一个 IP 地址更容易。域名系统 (DNS) 是一种机制,可用于将易于记忆的名称转换为多数 Internet 或企业网络的不易记忆的 IP 地址。

为了使您能够访问 http://www.widgets-inc-10.com/ 这样的网站,DNS 需要将 http://www.widgets-inc-10.com 指向您的 Web 服务器的 IP 地址。具体来讲,可由客户端访问以进行浏览的一台或多台 DNS 服务器提供这种名称解析。

为了解 DNS 的工作方式,我们将此示例 URL http://www.widgets-inc-10.com/ 加以分解

http:// 是用于 URL 的协议
www 是主机
widgets-inc-10 是域,而
com顶级域 (TLD)。

DNS 以 TLD 开头,按分层方式设置。查找主机地址相当简单 - 系统首先查找 TLD,移至正确的域,然后访问主机。

Internet 有十二个根服务器,每个根服务器都能分辨像 .com、.net 和 .org 这样的顶级域。每个 TLD 都能确定其有权访问的域。每个域都能识别出其有权访问的主机。在 Internet 上,每个域都至少有一个授权 DNS 服务器,其他每个服务器在需要关于该域的信息时,都要到此服务器上查找。每个 DNS 服务器在其作为授权 DNS 服务器的每个域名中,都有一个列表,其中包含每个主机的名称及相关 IP 地址。您可通过很多站点检查特定的 DNS 服务器配置,例如:http://www.dnsreports.com、http://www.dnsstuff.com 和 http://www.dnsgoodies.com。

当您注册一个域时(例如,http://www.widgets-inc-10.com),您必须提供将作为该域的 DNS 授权服务器的 DNS 服务器名称和 IP 地址。根服务器使用此项注册记录来确定在域中命名和寻址的权限。

要将 Web 服务器 http://www.widgets-inc-10.com 从托管公司移到您的系统,您必须做两件事:

1.

配置将要作为 http://www.widgets-inc-10.com 域的 DNS 授权服务器的 DNS 服务器。此 DNS 服务器需要将添加到 widgets-inc-10.com 域记录中的 www 主机与您的 IIS 服务器的 IP 地址相对应。

2.

更新您的域名注册记录,以将该 DNS 服务器作为您的域的一个授权 DNS 服务器来显示。

您不一定要运行自己的 DNS 服务器来完成此工作,但您可以这样做。如果您不运行自己的 DNS 服务器,那么无论谁来运行这个属于您的域的 DNS 授权服务器,都需要进行相应更改。如果是您自己运行这个 DNS 服务器,则可自行更改。如果您所需的只是 Web 服务器的名称解析,并且该信息很少发生改变(多数情况下,它仅在服务提供商变更时才发生改变),那么,让您的 ISP 或域名注册服务商来处理您的 DNS 通常会更方便。

有关运行您自己的 DNS 服务器的详细信息,请参阅:

HOW TO:在 Windows Server 2003 中安装和配置 DNS 服务器

如何在 Windows Server 2003 中为网站配置 DNS 记录


在虚拟目录中创建应用程序根目录

问:

我创建了一个新的 Web 应用程序并将其上传至我的托管站点,但该程序不工作。该程序是否必须在虚拟目录中?

答:

Web 应用程序不需要在虚拟目录中,但它们确实需要在应用程序根目录中。虚拟目录可以是一个应用程序根目录,但不是必须如此。同样,应用程序根目录可以在虚拟目录中创建,也可在标准目录中创建。

利用虚拟目录,网站可以提供该网站的物理文件夹的正常层次结构外部的内容。可将虚拟目录视为指向文件实际位置的指针。可以使用 IIS 管理控制台创建虚拟目录。

要使用 IIS 管理控制台创建虚拟目录:

1.

右键单击网站并选择 All Tasks(所有任务),然后选择 New Virtual Directory(新建虚拟目录)。

2.

为虚拟目录文件夹命名。

请求内容时,该名称将显示为 URL。例如,如果您将虚拟目录命名为 folder_1,则即使虚拟目录指向名为 folder_2 的文件夹,URL 也将是 http://www.example.com/folder_1/。您可更改虚拟目录所指的位置而不必更新网站链接,如此便充分利用了这一功能。

默认情况下,虚拟目录不会创建为应用程序根目录。网站上的唯一默认应用程序根目录是网站的根文件夹。为使 ASP.NET Web 应用程序能在所有其他目录(既包括标准文件夹,又包括虚拟目录)中正确运行,必须将这些目录指定为 ASP.NET Web 应用程序的应用程序根目录。

要在文件夹或虚拟目录中创建应用程序根目录:

1.

在 IIS MMC 上,右键单击文件夹或虚拟目录并选择 Properties(属性)。

2.

选择 Application Settings(应用程序设置)部分的目录选项卡。

3.

单击 Create(创建),并为应用程序输入名称。默认名称为您正在使用的文件夹的名称。

4.

单击 OK(确定)创建应用程序根目录。MMC 上的图标应变为齿轮形状的应用程序图标。

为方便使用和更安全,您可将 Web 应用程序文件存储在 Web 文件夹层次结构的外部。Web 文件夹层次结构外部的文件不能直接通过 HTTP 访问,因而在没有通过虚拟目录进行处理的情况下,便不能由浏览器进行检索。

虚拟目录,但不是应用程序根目录:

Create(创建)按钮用于在虚拟目录或文件夹中创建 Web 应用程序根目录:

应用程序的默认名称是虚拟目录或文件夹的名称,但您可键入一个新名称:

应用程序根目录由齿轮形状的图标指示:



发表时间:2006年7月2日     阅读次数:1644
TOP
产品和解决方案
成功案例
技术热点和追踪
人才需求
培训中心