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

下面我将分步详细解释如何正确地“发布”你的 ASP.NET 网站程序。
核心概念:发布 vs. 复制文件
对于 ASP.NET Web Forms 应用程序,标准的做法是使用 “发布” (Publish) 功能,而不是简单地复制文件,原因如下:
- 编译:你的
.aspx页面和.cs代码文件需要被编译成.dll文件(程序集),服务器上只需要编译后的.dll和.aspx文件,不需要.cs源代码文件。 - 依赖项:你的项目依赖的第三方库(如 Newtonsoft.Json, log4net 等)需要被正确地打包进去。
- 配置文件:
Web.config文件在发布时会被优化,并且可能需要根据服务器环境(如开发、测试、生产)进行不同的配置(如数据库连接字符串)。 - 预编译:可以选择“预编译整个网站”,这会生成一个
App_Code.dll,并且可以删除.aspx文件后的代码,只留下一个占位符,提高安全性和性能。
第一步:准备工作
在开始发布之前,请确保你已经:
- 完成了开发和测试:你的网站在本地运行正常。
- 安装了 .NET Framework:你的服务器上必须安装与你项目目标版本相匹配的 .NET Framework 运行时,如果你的项目是用 Visual Studio 2025 开发的,目标框架很可能是 .NET Framework 4.5 或 4.6.1,你的服务器上必须有对应的运行时。
- 安装了 IIS:最常用的 Web 服务器是 Internet Information Services (IIS),Windows Server 系统自带,Windows 桌面版也可以安装。
- 拥有服务器访问权限:你需要知道服务器的 IP 地址、用户名和密码,并且该用户有权限在 IIS 中创建网站和写入文件。
第二步:在 Visual Studio 中发布你的网站
这是最标准、最推荐的方法。

右键点击你的项目
在 Visual Studio 的“解决方案资源管理器”中,右键点击你的 Web 项目,然后选择 “发布” (Publish)。
选择发布目标
Visual Studio 会打开发布向导,首先选择发布目标,对于首次发布,通常选择 “自定义” (Custom)。
配置发布设置
在“连接” (Connection) 选项卡中,填写以下信息:
- 发布方法:选择 “文件系统” (File System),这是最简单的方式,它会将所有文件发布到你本地的一个文件夹,然后你可以手动将这些文件上传到服务器。
- 目标位置:选择一个你本地的文件夹路径,
C:\PublishOutput\MyWebApp。
点击 “下一步” (Next)。

配置设置
在“设置” (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 中创建网站
- 打开服务器上的 Internet Information Services (IIS) 管理器。
- 在左侧的“连接”面板中,右键点击 “站点” (Sites),选择 “添加网站...” (Add Website...)。
- 网站名称:给你的网站起一个名字,
MyWebApp。 - 物理路径:浏览并选择你刚刚上传文件的文件夹,
C:\inetpub\wwwroot\MyWebApp。 - 类型:选择 “http”。
- IP 地址:选择服务器的 IP 地址,或选择“全部未分配”。
- 端口:设置一个端口号,
80(HTTP) 或443(HTTPS),确保该端口没有被其他程序占用。 - 主机名:如果需要通过域名访问,可以填写域名,否则留空。
点击 “确定”。
检查 .NET Framework 版本
- 在 IIS 管理器中,选中你刚刚创建的网站。
- 在中间的“操作”面板中,双击 “应用程序池” (Application Pools)。
- 找到并右键点击你网站使用的应用程序池(通常和网站同名),选择 “基本设置...” (Basic Settings...)。
- 在“.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文件夹是否包含了所有必需的程序集。
如何“发源代码”
如果你想发布的仅仅是源代码(给其他开发者学习或修改),那么过程就完全不同了:
- 不要使用 Visual Studio 的发布功能。
- 不要编译项目。
- 将整个项目文件夹(包含
.sln文件、.csproj文件、.aspx、.cs、Web.config、packages文件夹等)压缩成一个.zip文件。 - 将这个
.zip文件发给对方,对方需要用 Visual Studio 打开.sln文件,并确保他的电脑上安装了相应的 .NET Framework 开发环境才能运行和修改。
请根据你的目的选择正确的方法:
- 想让别人通过浏览器访问你的网站:使用 Visual Studio 发布 + IIS 部署 的方法。
- 想给别人你的源代码用于学习和二次开发:直接 压缩整个项目文件夹 发送。
