“发布”这个词在这里有特定的含义,它不仅仅是把 .aspx.cs 文件复制到服务器那么简单,一个完整的 ASP.NET Web Forms 应用程序包含多种文件,并且需要特定的环境才能运行。

怎么发aspx网页的程序源代码
(图片来源网络,侵删)

下面我将分步详细解释如何正确地“发布”你的 ASP.NET 网站程序。


核心概念:发布 vs. 复制文件

对于 ASP.NET Web Forms 应用程序,标准的做法是使用 “发布” (Publish) 功能,而不是简单地复制文件,原因如下:

  1. 编译:你的 .aspx 页面和 .cs 代码文件需要被编译成 .dll 文件(程序集),服务器上只需要编译后的 .dll.aspx 文件,不需要 .cs 源代码文件。
  2. 依赖项:你的项目依赖的第三方库(如 Newtonsoft.Json, log4net 等)需要被正确地打包进去。
  3. 配置文件Web.config 文件在发布时会被优化,并且可能需要根据服务器环境(如开发、测试、生产)进行不同的配置(如数据库连接字符串)。
  4. 预编译:可以选择“预编译整个网站”,这会生成一个 App_Code.dll,并且可以删除 .aspx 文件后的代码,只留下一个占位符,提高安全性和性能。

第一步:准备工作

在开始发布之前,请确保你已经:

  1. 完成了开发和测试:你的网站在本地运行正常。
  2. 安装了 .NET Framework:你的服务器上必须安装与你项目目标版本相匹配的 .NET Framework 运行时,如果你的项目是用 Visual Studio 2025 开发的,目标框架很可能是 .NET Framework 4.5 或 4.6.1,你的服务器上必须有对应的运行时。
  3. 安装了 IIS:最常用的 Web 服务器是 Internet Information Services (IIS),Windows Server 系统自带,Windows 桌面版也可以安装。
  4. 拥有服务器访问权限:你需要知道服务器的 IP 地址、用户名和密码,并且该用户有权限在 IIS 中创建网站和写入文件。

第二步:在 Visual Studio 中发布你的网站

这是最标准、最推荐的方法。

怎么发aspx网页的程序源代码
(图片来源网络,侵删)

右键点击你的项目

在 Visual Studio 的“解决方案资源管理器”中,右键点击你的 Web 项目,然后选择 “发布” (Publish)

选择发布目标

Visual Studio 会打开发布向导,首先选择发布目标,对于首次发布,通常选择 “自定义” (Custom)

配置发布设置

在“连接” (Connection) 选项卡中,填写以下信息:

  • 发布方法:选择 “文件系统” (File System),这是最简单的方式,它会将所有文件发布到你本地的一个文件夹,然后你可以手动将这些文件上传到服务器。
  • 目标位置:选择一个你本地的文件夹路径,C:\PublishOutput\MyWebApp

点击 “下一步” (Next)

怎么发aspx网页的程序源代码
(图片来源网络,侵删)

配置设置

在“设置” (Settings) 选项卡中,进行以下关键配置:

  • 配置:选择你希望发布的配置,通常是 “Release” (发布版),而不是 “Debug” (调试版)。
  • 文件发布选项
    • 移除附加文件强烈建议勾选此项,这会确保目标文件夹中只包含当前发布版本需要的文件,避免残留旧版本的文件。
    • 在发布期间预编译此站点强烈建议勾选此项,这会编译你的代码,生成 .dll 文件,并可以选择是否删除 .aspx 文件中的源代码,选择“不进行预编译”也可以,但“预编译整个站点”是更优的生产环境选择。
    • 即使输出目录中有文件,也进行增量发布:勾选此项可以提高发布速度,因为它只上传发生变化的文件。

点击 “下一步” (Next)

预览并发布

在“预览” (Preview) 选项卡中,你可以看到将要被复制哪些文件,确认无误后,点击 “发布” (Publish) 按钮。

Visual Studio 会开始编译和发布过程,完成后,你会在“输出”窗口看到发布成功的消息,你本地的 C:\PublishOutput\MyWebApp 文件夹里就包含了所有可以部署到服务器的文件。


第三步:在服务器上部署和配置

你需要将发布好的文件从你的本地电脑转移到 Web 服务器上。

上传文件到服务器

C:\PublishOutput\MyWebApp 文件夹里的所有内容,上传到服务器的某个目录下,C:\inetpub\wwwroot\MyWebApp

  • 如何上传?
    • 文件共享:如果服务器开启了文件共享,你可以直接通过网络复制粘贴。
    • FTP/SFTP:这是最常用的方式,使用 FileZilla 等工具连接服务器上传。
    • Web Deploy:在 Visual Studio 的发布向导中,如果你选择“Web Deploy”作为发布方法,并且服务器配置了 Web Deploy 服务,可以直接一键发布到服务器,这比手动上传更高效,但需要服务器端进行额外配置。

在 IIS 中创建网站

  1. 打开服务器上的 Internet Information Services (IIS) 管理器
  2. 在左侧的“连接”面板中,右键点击 “站点” (Sites),选择 “添加网站...” (Add Website...)
  3. 网站名称:给你的网站起一个名字,MyWebApp
  4. 物理路径:浏览并选择你刚刚上传文件的文件夹,C:\inetpub\wwwroot\MyWebApp
  5. 类型:选择 “http”
  6. IP 地址:选择服务器的 IP 地址,或选择“全部未分配”。
  7. 端口:设置一个端口号,80 (HTTP) 或 443 (HTTPS),确保该端口没有被其他程序占用。
  8. 主机名:如果需要通过域名访问,可以填写域名,否则留空。

点击 “确定”

检查 .NET Framework 版本

  1. 在 IIS 管理器中,选中你刚刚创建的网站。
  2. 在中间的“操作”面板中,双击 “应用程序池” (Application Pools)
  3. 找到并右键点击你网站使用的应用程序池(通常和网站同名),选择 “基本设置...” (Basic Settings...)
  4. 在“.NET CLR 版本”下拉菜单中,确保选择了你项目所使用的 .NET Framework 版本(无托管代码,或者 v4.0.30319),如果你的网站是纯 ASP.NET Web Forms,请选择对应的版本。

配置 Web.config(如果需要)

如果你的 Web.config 文件中包含需要根据环境修改的配置(如数据库连接字符串),请在上传到服务器后手动修改它,通常的做法是使用 Web.config<connectionStrings><appSettings> 节点,并为不同环境(开发、测试、生产)设置不同的值。


第四步:访问和测试

打开浏览器,输入服务器的 IP 地址和端口号,http://192.168.1.100:80

如果一切配置正确,你应该能看到你的 ASP.NET 网站了。

常见问题排查

  • HTTP 500.19 - Internal Server Error:通常是 Web.config 文件有问题,或者 IIS 的处理程序映射配置不正确,检查 Web.config 的语法,并确保在 IIS 中已注册了 ASP.NET 的处理程序。
  • HTTP 404.0 - Not Found:可能是网站物理路径指向错误,或者应用程序池没有正确配置。
  • 编译错误:服务器上缺少某个 .dll 依赖项,检查 bin 文件夹是否包含了所有必需的程序集。

如何“发源代码”

如果你想发布的仅仅是源代码(给其他开发者学习或修改),那么过程就完全不同了:

  1. 不要使用 Visual Studio 的发布功能
  2. 不要编译项目
  3. 将整个项目文件夹(包含 .sln 文件、.csproj 文件、.aspx.csWeb.configpackages 文件夹等)压缩成一个 .zip 文件。
  4. 将这个 .zip 文件发给对方,对方需要用 Visual Studio 打开 .sln 文件,并确保他的电脑上安装了相应的 .NET Framework 开发环境才能运行和修改。

请根据你的目的选择正确的方法:

  • 想让别人通过浏览器访问你的网站:使用 Visual Studio 发布 + IIS 部署 的方法。
  • 想给别人你的源代码用于学习和二次开发:直接 压缩整个项目文件夹 发送。