65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 IIS 和 ASP.NET 设置家庭服务器的简单指南

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.90/5 (5投票s)

2016 年 5 月 23 日

CPOL

17分钟阅读

viewsIcon

34542

在这篇文章中,我将介绍使用 IIS 和 ASP.NET 设置家庭服务器的流程;IIS 作为 Web 服务器,ASP.NET 作为 Web 脚本框架。

大家好,我很久没有写东西了,非常抱歉,最近一直在考试,非常忙。但现在我回来了。这次我将写一篇关于在家搭建自己的个人服务器的指南。通常,我从头开始写一些东西,但为了节省时间,我希望您对一些事情有一些背景知识。我会尽力涵盖它们,但如果我遗漏了一些东西,请原谅我。这是因为我想在这篇单一指南中涵盖很多内容,然后我将在后续文章中介绍其他配置和更新。

引言和背景

我一直在研究如何让我的家人通过正确使用他们的设备进行交流,然而,每种方法都需要第三方软件来进行交流。此外,还需要一个正常工作的互联网连接。如果只需要连接性而不是互联网连接性,我想为什么不为家庭创建一个服务器,让我们能够通信、共享文件而不必通过第三方网络呢?毕竟,谁信任他们?那不是主要原因,主要原因是我也很享受为家人构建服务器。:-)

在这篇文章中,我将带领大家构建自己的 Web 服务器,您当然可以更新 Web 应用程序,根据需要配置服务!在这篇文章中,我将为您介绍以下内容:

  1. 设置服务器。
    • 我出于个人目的使用 Windows Server 2012。我将引导您安装 IIS(Microsoft 的 Web 服务器)和一些其他必需的组件。您可以根据需要安装其他组件。
    • 设置将要用于服务器的 IP 地址。
  2. 设置 ASP.NET 环境。
    • 在 IIS 执行 Web 应用程序中的 ASP.NET 代码之前,您必须安装 ASP.NET 组件。
  3. 设置 Web Deploy。
    • 我不在服务器(又名托管)环境中进行 Web 开发。相反,我将在自己的笔记本电脑上开发。然后,我将需要一个服务来部署这些东西到服务器上。
    • 我将引导您在服务器上设置 Web Deploy。
    • 我将引导您设置发布配置文件,以便在通过 Visual Studio 将 Web 应用程序发布到服务器时使用。
  4. 发布和运行 Web 应用程序。

我假设您对这些东西的工作原理、什么是服务器、 Web 应用程序如何工作、 IP 地址如何工作以及什么是 DNS 都有基本的了解和认识。我会尽力向您解释这些组件,但如果我遗漏了什么,请原谅。有时我的帖子可能难以理解,如果难以理解,请随时联系我,我会让事情变得清楚,同时考虑这么多事情真的很困难……😉

现在,我将把流程分解成步骤来讲解。

设置服务器

首先,我们来谈谈服务器的设置。这里没什么特别的,只是安装 Windows Server。我也可以使用其他服务器,但那样的话我需要为我的应用程序添加补丁等等。所以,我建议您直接在您的机器上安装 Windows Server。您可以从 Microsoft 下载评估版,试用 Windows Server 2012。之后,只需安装 Windows Server,我相信您知道如何操作。另外,在继续之前,请阅读Windows Server 的要求

您可以在网上找到安装 Windows Server 的解释和流程。学习过程也非常简单。微软自己投入了大量优质的在线资源来培训和提升 IT 专业人士。所以您也可以从那里学习使用 Windows Server。

参考文献

  1. Windows Server 2012 R2 Jump Start 有哪些新功能
  2. Windows Server 2012:Web 和应用程序平台

配置要使用的 IP 地址

如果您曾经接触过网络,您应该知道每个设备都有一个用于与之通信的 IP 地址。由于我们的服务器将是通信的中心,我们需要确保 IP 地址不会改变。因此,我们将为服务器分配一个我们希望在整个网络中使用的 IP 地址。

注意:稍后我将讨论使用主机名以及如何在服务器上设置 DNS 服务器以实现友好的 URL。在这篇文章中,我们保持简单和数字化。

要打开配置窗口,请按照以下步骤操作:

  1. 打开“网络和共享中心”。
  2. 选择“更改适配器设置”。
  3. 选择您正在连接的设备。可能有一个以太网连接和一个无线连接。选择您要使用的连接。右键单击 → 打开属性窗口。
  4. 我们将更新 IPv4 设置,并分配我们希望设备使用的 IP 地址。因此,在提供的列表中,选择“Internet 协议版本 4 (TCP/IPv4)”选项。双击。

默认情况下,大多数情况下会选择“**自动获取 IP 地址**”,我们将覆盖默认设置,因此我们需要将此选项更改为我们想要的选项。但请记住,我们不想修改正在使用的 DNS、子网掩码和网关。首先需要理解的是 IPv4 范围内的本地地址。私有 IP 地址属于本地网络而不是外部网络(如 Internet)。本地 IP 地址范围是:

  1. 10.0.0.0 到 10.255.255.255
  2. 172.16.0.0 到 172.31.255.255
  3. 192.168.0.0 到 192.168.255.255

所以,您可以使用此范围内的任何地址,并将该 IP 分配给您的服务器。您的路由器将能够检测到计算机,但是,请求不会发送到外部网络,因为 IP 地址不属于外部网络;它是*本地网络的 IP 地址*。因此,根据我自己的地址、网络系统和地址。我将设置 ISP 提供给我的默认值,但会从本地范围中选择一个随机 IP 地址。

13271833_1069172973149577_1150434510_o
图 1:配置服务器的 IP 地址。

稍后,我们将使用 DNS 服务器来配置我们在设备上如何使用服务等等。在此步骤之前,我们的服务器已设置好,现在我们可以安装 Web 服务器来处理传入的请求并将它们转发给“Web 应用程序”。继续下一步。

安装组件 — 以及 IIS

在 Windows Server 中,您不必获取所有东西的可执行文件,而是只需启用和禁用服务,这类似于“启用或关闭 Windows 功能”。在 Windows Server 中,打开服务器管理器。

13288130_1069204476479760_1806657737_o图 2:Windows Server 中的服务器管理器应用程序。

在其中:

  1. 选择“添加角色和功能”。此功能用于向环境添加更多服务以及向服务器添加或删除功能。
  2. 选择“基于角色或基于功能的安装”。
  3. 选择服务器。默认情况下,只会列出一个服务器。如果您有多个服务器,请选择您要用于安装功能的服务器。
  4. 选择要在计算机上安装的功能和角色。
    • 在本节中,我将仅安装 IIS 服务器。选择“**Web 服务器 (IIS)**”并安装。建议您从功能列表中安装 .NET 4.5 功能。
    • 根据您的服务器和要构建的服务需求,添加更多功能。
  5. 最后,安装选定的组件。

我通常在安装每个组件或服务后重新启动机器。这并非总是必需的,但大多数情况下,您应该重新启动计算机以确保组件已安装并正常运行。

现在让我们逐一分析 IIS 部分并研究我们得到了什么……要启动 IIS 管理器,请打开“开始”菜单并搜索“**inetmgr**”,这将为您提供 IIS 服务器的应用程序。

13271866_1069204489813092_1090144792_o
图 3:显示 IIS 服务器主页。

您可以看到,此门户允许您创建新站点、连接到应用程序、配置服务器属性、其 IP 地址、域。它甚至允许您从同行那里获取有用的材料,例如 TechNet、ASP.NET 官方网站、IIS 官方网站等等。向下导航到服务器,默认情况下 IIS 在环境中创建了一个“默认 Web 站点”,用于测试服务器是否正常工作。您可以在此处配置和更新服务器本身。您可以修改证书、HTTP 处理程序、SMTP 管理以及与您的服务器相关的任何内容。通常,一切都会自动管理,您无需执行任何复杂的操作。然而,在许多情况下,您将不得不亲自更改计算机和框架的状态。

13262522_1069204499813091_532248963_o
图 4:IIS 服务器中显示的“默认 Web 站点”主页。

我已经安装了与 ASP.NET 本身相关的其他组件,这些组件目前可能在您的计算机上不可见。如果一切相似,那就太好了,如果不相似,请继续阅读,因为我也会教您如何在 Windows Server 上配置 ASP.NET 框架。

查看右侧面板,其中包含您想对应用程序执行的所有操作。它包含快速操作,例如重启应用程序、配置应用程序、从内置库安装更多服务等等。

Web 平台安装程序

这里要谈论的另一个很棒的功能是Web 平台安装程序。此应用程序允许您在短时间内安装 Microsoft 的最佳产品。它会扫描您的计算机,检查更新、新软件程序包的发布,并允许您直接在您的计算机上下载程序包进行安装。

main-webpi-download
图 5:Web 平台安装程序可用于安装与您的机器架构和操作系统相关的任何软件程序包。

我想谈谈这个很棒的 Microsoft 产品,在我刚开始学习使用 WebMatrix 编程的日子里,我真的很喜欢它。我也很怀念那个工具,但由于 Microsoft 不再更新它,而 Visual Studio 是个强大的工具,所以我不再使用或推荐它了。

参考文献

  1. 添加服务器角色和功能
  2. 官方 IIS 网站

设置 ASP.NET 环境

仅仅安装 IIS 是不够的,ASP.NET 并没有预装。您需要到服务器管理器并安装 ASP.NET 组件,我建议您安装大部分这些组件。虽然它们不是必需的,并且只有您将要使用的组件以及在生产应用程序中所需的组件才是必需的。在角色部分,转到 Web 服务器 → Web 服务器 → 应用程序开发。

13275301_1069220659811475_904150246_o
图 6:在 Windows Server 上安装 ASP.NET 功能。

选择您想在计算机上安装的框架。在您实际将内容发布到服务器之前,它们是必需的。我选择了 ASP.NET 4.5 和平台,然后选择要安装的依赖项。我已经安装了框架,所以它显示为灰色,表示该选择已被禁用。如果您想选择任何其他功能,例如 Classic ASP(*顺便说一句,为什么要用?*),您可以从列表中选择,然后转到最后一步,点击“安装”。

这将需要一些时间,具体取决于许多因素,例如互联网连接、您的计算机硬件等。

我建议您重启计算机,以确保一切正常运行。现在一切都已设置好,我们需要将一个应用程序发布到我们的服务器,我们将通过我们刚刚分配给服务器的 IP 地址来使用它。但在我们这样做之前,总是回去复制粘贴或发送文件然后再替换文件是不明智的。即使这是一个个人项目,当您需要将更改发布到服务器时,事情也可能会变得非常困难和混乱。因此,为此,我们将使用 Web Deploy 工具,并将我们的开发工具与服务器本身连接起来。您一定熟悉 Web Deploy 工具,对吧?

设置 Web Deploy

在继续进行最后阶段之前,我想确保我所有的更改都可以推送到服务器,而无需自己更改和更新内容。Microsoft Web Deploy 就是这样一种功能。它允许您远程部署内容,更新注册表、文件和其他内容。但是,我们感兴趣的是另一项功能,“发布配置文件”文件的生成。这是一个纯 XML 文件,用于配置计算机的部署过程。目前,Web Deploy 3.6 已发布。

Web Deploy 允许您在短时间内将您项目的更改发布到您的服务器、托管环境!我真的很喜欢这个功能,因为我一直在对我的网站进行一些更新,而 Web Deploy 通过发布配置文件等过程证明了它非常简单,设置保存在 XML 中,Visual Studio 会处理连接和发布。要安装 Web Deploy,您需要在服务器管理器中启用“Windows 部署服务”角色。此角色将允许您的服务器通过远程设备进行连接以进行发布。之后,您可以使用 Web 平台安装程序来安装 Web Deploy 服务。

13275376_1069247266475481_1528371918_o
图 7:显示 Windows 部署服务选项(灰色,倒数第三个)。

Web PI 会自行管理大部分依赖项。因此,如果您选择一个框架或程序包进行安装,Web PI 会自行管理程序包在计算机环境中运行所需的依赖项。

13282745_1069247279808813_340198950_o
图 8:Web PI 显示服务器上找到的 Web Deploy 程序包列表。

我们 — — 几乎 — — 准备好了。最后一步是配置发布配置文件。我们将在开发环境中使用该文件来发布 Web 应用程序。

参考文献

  1. Web Deploy
  2. 在 IIS 8.0 或更高版本上安装和配置 Web Deploy

配置部署选项

每个应用程序都需要不同的目录,因此每个 Web 应用程序在部署应用程序到服务器时都需要使用不同的配置文件。我将介绍默认的配置文件。默认的 Web 站点可以配置为支持基于 Web Deploy 的应用程序源代码的远程部署。

13282383_1069252993141575_1898688729_o
图 9:在 IIS 管理器中配置 Web 应用程序的 Web Deploy 发布选项。

接下来,您将选择要为应用程序发布设置的选项。它们简单易懂。

13262145_1069254479808093_1777487270_o
图 10:Web Deploy 配置窗口。

我现在将逐步讲解这些选项,您可以根据自己的需求进行配置。

  1. 用户:这是您将代表其发布网站的用户帐户。您应该创建一个单独的用户帐户,然后使用其配置作为发布时的身份验证。我使用了管理员帐户,因为我想保持简单。
  2. SQL Server 连接字符串:用于 SQL Server 的连接字符串。
  3. MySQL 连接字符串:与上面相同,但用于 MySQL。
  4. URL:服务器所在的位置。
  5. 位置:保存发布配置文件后,您可以在此处找到它。

对设置满意后,只需点击“设置”。这将处理设置并最终为您创建要发送到开发环境的文件。为了简单起见,我将省略开发阶段和步骤,而是继续进行发布步骤。不过,我将添加我以前关于 ASP.NET 编程的文章的链接。

发布和运行 Web 应用程序

完成所有操作后,您可以将发布配置文件发送到您的开发环境来发布 Web 应用程序。您可以根据需要通过任何方法、任何媒介发送。

要继续,请选择“生成”→“发布 {ProjectName}”。这将允许您从一堆选项中选择您想做什么。点击“导入”,然后选择发布配置文件,这将允许您选择与您在服务器上配置的相同设置。

Screenshot (7025)
图 11:Visual Studio 中的发布对话框。

选择您刚刚推送到开发环境的文件。Visual Studio 将自动读取文件并填充字段。

实际的 XML 文件内容是

<?xml version="1.0" encoding="utf-8"?>
<publishData>
  <publishProfile
     publishUrl="https://WIN-UEN6KL61CTO:8172/msdeploy.axd"
     msdeploySite="Default Web Site"
     destinationAppUrl="http://WIN-UEN6KL61CTO:80/"
     mySQLDBConnectionString=""
     SQLServerDBConnectionString=""
     profileName="Default Settings"
     publishMethod="MSDeploy"
     userName="WIN-UEN6KL61CTO\Administrator" />
</publishData>

这些与我们拥有的值相似。现在,我们可以在下图看到 Visual Studio 使用相同的值并自行构建过程。它将使用这些值来发布 Web 应用程序。

Screenshot (7026)
图 12:Visual Studio 中发布配置文件的设置。

虽然不是必需的,但您至少应该测试连接。这将在将 Web 内容推送到目标之前允许您测试连接。

请注意,“**密码**”字段为空。密码未通过线缆传输。我们需要输入该用户帐户的密码;*该服务器的密码*。此步骤取决于您如何设计发布 Web 应用程序的系统,如果您使用不需要密码的另一个帐户,我认为这是个愚蠢的想法。因此,请始终保留一个帐户(另外,请记住保留一个除管理员帐户之外的帐户)并使用其凭据。使用 SSL 在生产服务器上传输内容。之后,您应该能够将 Web 应用程序提交到服务器。

调试和配置

Web 应用程序并不总是一次性成功。您会遇到很多问题,很多障碍。有很多很好的社区可供您在遇到麻烦时寻求帮助。只需确保您了解您的应用程序需要什么运行时,以及可用的运行时等等。

我不会在这里编写 ASP.NET 代码,而是展示我的应用程序在实际显示页面渲染结果之前的默认页面内容。

<p style="font-size: 10em;">Welcome :-)</p>

这足以测试应用程序了。:-)

Screenshot (7027)
图 13:网站主页上显示的欢迎消息。

正如预期的那样,请注意两点:

  1. 我们为服务器设置的 IP 地址。
  2. 我们希望显示在浏览器屏幕上的消息。

这表明我们已经按照自己的意愿设置好了服务器。现在我们可以继续为其添加更多功能,并继续改进它们以部署到设备。😉 另外,您注意到导航菜单中也有 API 吗?这意味着我还会发布有关通过原生移动设备使用 Web API 的内容。接下来的两个月里,还有很多内容即将推出。如果您发现我在文章中遗漏了什么,希望您能告诉我。

关注点

我确实遇到了一些问题,因为 IIS 锁定了资源。然后 .NET 框架不匹配也出现了一些问题。无论如何,这个过程非常简单、健壮且快速。我喜欢构建服务器和使用 Web 应用程序。

我没有介绍数据库使用、身份验证,这些将在以后的文章中处理。但是,这篇文章只是为了解释构建自己的自定义服务器以供自己使用的基本概念。我将发布我在这个过程中发现的其他有趣内容。我还会将其写成一份指南,您以后可以从 C# Corner 下载。我真的很喜欢他们的内容发布方式,您可以从他们的社区网站获取更多电子书。

希望您觉得这篇文章有趣且易于理解。呼!下次再见。

© . All rights reserved.