C#进阶-IIS服务器发布ASP.NET项目

这篇具有很好参考价值的文章主要介绍了C#进阶-IIS服务器发布ASP.NET项目。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

对于云服务器,程序员一般不会陌生,如果项目需要发布到现网,那么服务器是必不可缺的一项硬性条件,那么如何在云服务器上部署一个项目,需要做哪些配置准备,下面就由本文档为大家讲解,本篇以 IIS服务器 发布 ASP.NET 项目为例。

C#进阶-IIS服务器发布ASP.NET项目,C#,服务器,asp.net,运维,iis,winserver,发布,c#


一、准备项目的发布版本

1、检查项目是否可运行

本地用 Visual Studio 打开一个可运行的 ASP.NET 项目,

右键解决方案清理解决方案 => 重新生成解决方案。

如果项目有错误,这里会显示报错。没有错误,则重新生成成功。

C#进阶-IIS服务器发布ASP.NET项目,C#,服务器,asp.net,运维,iis,winserver,发布,c#

也可以本地直接启动,访问调试看看能不能顺利运行。 


2、打包项目

我们发布 ASP.NET 项目,就是将打包后的项目包复制到在服务器的发布文件夹内,因此,我们需要准备可发布的项目包,这个包通过 Visual Studio 编译生成。

我们用 Visual Studio 打开刚刚验证过的项目, 选中项目的启动模块(名字加粗的模块),鼠标右键,点击发布。

C#进阶-IIS服务器发布ASP.NET项目,C#,服务器,asp.net,运维,iis,winserver,发布,c#

发布时选择发布文件夹的路径,项目的 Release 版本会生成在这个文件夹里。 

C#进阶-IIS服务器发布ASP.NET项目,C#,服务器,asp.net,运维,iis,winserver,发布,c#

记住发布的目标文件夹位置。

点击发布,项目会开始编译,控制台显示发布状态,发布完成会有提示。
项目发布完成后,打开该文件夹,cwfpublish 是我们的发布文件夹。

C#进阶-IIS服务器发布ASP.NET项目,C#,服务器,asp.net,运维,iis,winserver,发布,c#

把整个文件夹(cwfpublish)复制到云服务器上。

C#进阶-IIS服务器发布ASP.NET项目,C#,服务器,asp.net,运维,iis,winserver,发布,c#


3、项目包内容介绍

C#进阶-IIS服务器发布ASP.NET项目,C#,服务器,asp.net,运维,iis,winserver,发布,c#

  • bin 目录是应用程序目录,里面默认装的是 所有.cs文件的编译版本(.dll文件),包含每个模块的.dll文件和.pdo缓存文件,每次我们修改 .cs 文件或者引入 nuget 包,bin目录都会发生变化,需要重新发布才能生效;
  • configs 目录一般是存放 log4j.config 等配置文件;
  • css 目录存放前端样式文件;
  • images 目录存放静态图片;
  • js 目录存放前端 JavaScript 代码;
  • Map 目录存放 MyBatis框架 封装的 .xml文件;
  • pages 目录存放前端 .aspx 页面;
  • Template 目录存放模板文件,比如复用频率高的 html模板、邮件模板等等;
  • themes 目录存放静态资源文件(主题类css/js/images)
  • global.asax 是 ASP.NET 自带的全局文件,里面可以自定义生命周期内的动作;
  • packages.config 是项目引用包的包名和包的版本信息;

二、服务器搭建ASP.NET运行环境

1、服务器安装IIS运行环境

控制面板 => 程序,启动或关闭Windows功能。

C#进阶-IIS服务器发布ASP.NET项目,C#,服务器,asp.net,运维,iis,winserver,发布,c#

服务器会自动跳到如下页面:

C#进阶-IIS服务器发布ASP.NET项目,C#,服务器,asp.net,运维,iis,winserver,发布,c#

把我选的都勾了。

C#进阶-IIS服务器发布ASP.NET项目,C#,服务器,asp.net,运维,iis,winserver,发布,c#

C#进阶-IIS服务器发布ASP.NET项目,C#,服务器,asp.net,运维,iis,winserver,发布,c#

C#进阶-IIS服务器发布ASP.NET项目,C#,服务器,asp.net,运维,iis,winserver,发布,c#

然后安装。


2、调试IIS是否正常运行

安装好以后,调试浏览器,输入 localhost 访问,出现IIS说明安装成功

C#进阶-IIS服务器发布ASP.NET项目,C#,服务器,asp.net,运维,iis,winserver,发布,c#


3、发布项目

进入服务器管理器,右键进入IIS管理器

C#进阶-IIS服务器发布ASP.NET项目,C#,服务器,asp.net,运维,iis,winserver,发布,c#

C#进阶-IIS服务器发布ASP.NET项目,C#,服务器,asp.net,运维,iis,winserver,发布,c#

添加网站。

C#进阶-IIS服务器发布ASP.NET项目,C#,服务器,asp.net,运维,iis,winserver,发布,c#

C#进阶-IIS服务器发布ASP.NET项目,C#,服务器,asp.net,运维,iis,winserver,发布,c#

注意这里端口和tomcat的端口类似,我tomcat端口教70,这里使用90避免端口冲突;物理路径就是刚刚asp文件发布的位置;网站名称随意;

到此网站基本发布完成。


4、设置网站主页

如果网页发布文件夹根目录下没有放置 index.aspx(或其他名为index的默认页面文件),则需要配置默认文档来决定首页展示,不配置会提示 404(页面无法找到)
C#进阶-IIS服务器发布ASP.NET项目,C#,服务器,asp.net,运维,iis,winserver,发布,c#

此处,默认文档是用来决定网站主页的配置项。


5、开启服务器防火墙入站规则

下面是打开IIS服务器外网防火墙。
非80端口发布的项目,设置了对应端口的入站规则才可以访问到。

C#进阶-IIS服务器发布ASP.NET项目,C#,服务器,asp.net,运维,iis,winserver,发布,c#

控制面板 => 系统和安全 => Windows防火墙 => 高级设置 => 入站规则 => 新建规则

填写我们发布项目的端口。

C#进阶-IIS服务器发布ASP.NET项目,C#,服务器,asp.net,运维,iis,winserver,发布,c#

开放90端口,因为我这个网站上面设定的是90端口。

C#进阶-IIS服务器发布ASP.NET项目,C#,服务器,asp.net,运维,iis,winserver,发布,c#

后面一直点到完成,名称我起的是 netweb。

C#进阶-IIS服务器发布ASP.NET项目,C#,服务器,asp.net,运维,iis,winserver,发布,c#

完成之后我们可以在入站规则里看到我们刚刚设置的端口,双击可以看到我们的配置

防火墙开启完成。

C#进阶-IIS服务器发布ASP.NET项目,C#,服务器,asp.net,运维,iis,winserver,发布,c#

我们在服务器用浏览器调试 localhost:90

启动成功。


三、常见问题与解决

我们再进行本地调试,也遇到了几个问题

问题一:配置节被父级锁定

C#进阶-IIS服务器发布ASP.NET项目,C#,服务器,asp.net,运维,iis,winserver,发布,c#因为 IIS 7 采用了更安全的 web.config 管理机制,默认情况下会锁住配置项不允许更改。

解决方法:

以管理员身份运行命令行:

C:\windows\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers 。

C:\windows\system32\inetsrv\appcmd unlock config -section:system.webServer/modules

其中的 handlers、是错误信息中红字显示的节点名称,一般modules也会锁,不妨两条都解锁一下。


问题二:HTTP错误 404.3

C#进阶-IIS服务器发布ASP.NET项目,C#,服务器,asp.net,运维,iis,winserver,发布,c#

问题二出现的原因,一般是你看了别人家的教程,没有在我前面那样添加全面的服务器功能,回到我上面讲的地方,把该安装的都装了。


问题三:发布后的网站不能访问

测试本地浏览器输入localhost:90 是否可以访问,如果可以访问,说明项目是正常运行的。这种情况应该是被拦截了,看看服务器的防火墙规则和云服务器控制台的安全组有没有打开对应的端口。

经过排查,发现是我定义项目端口为 90,但是云服务器控制台的安全组里忘记开放 90 端口了,打开即可。

C#进阶-IIS服务器发布ASP.NET项目,C#,服务器,asp.net,运维,iis,winserver,发布,c#

至此,ASP.NET在云服务器上的发布教程结束。文章来源地址https://www.toymoban.com/news/detail-789054.html

到了这里,关于C#进阶-IIS服务器发布ASP.NET项目的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • asp.net core项目发布到 iis上

            我们都知道与传统asp.net 项目比较,ASP.NET Core则完全不同,它并不是运行在IIS的工作进程中,而是独立运行的。它运行于控制台应用程序之中,控制台中则运行了Kestrel Web服务器组件。Kestrel作为一款.NET Web服务器的实现,它在吞吐量性能方面做了很多工作。它可以

    2024年01月21日
    浏览(37)
  • 【服务器】ASP.Net Core(C#)创建Web站点

    简单几步实现本地ASP.Net.Core web 站点结合cpolar内网穿透工具实现远程访问 1. 创建站点 *环境搭建,这边测试,使用.NET 6.0 SDK,可以点击跳转到官网下载,下载后安装即可. 安装完成后,进入到某个文件夹,打开powershell执行下面命令,创建新的 Web 应用,名称叫:aspnetcoreapp 2. 运行站点 信任开

    2024年02月11日
    浏览(37)
  • Visual Studio使用Web Deploy发布.NET Web应用到指定服务器的IIS中

    今天要讲的是在Window 2008 R2版本的服务器下如何配置Web Deploy并使用Visual Studio进行.NET Web项目发布部署。 Web Deploy其实主要是为了解决Web应用程序和Web站点到IIS服务器的部署问题,管理员可以使用Web Deploy同步IIS服务器或迁移到较新版本的IIS。Web Deploy Tool还使管理员和委派用户能

    2024年01月25日
    浏览(44)
  • 在 C#和ASP.NET Core中创建 gRPC 客户端和服务器

    gRPC 是一种可以跨语言运行的现代高性能远程过程调用 (RPC) 框架。gRPC 实际上已经成为 RPC 框架的行业标准,Google 内外的组织都在使用它来从微服务到计算的“最后一英里”(移动、网络和物联网)的强大用例。 gRPC是一个高性能的开源的通用RPC框架,由Google公司开发,支持常

    2024年04月23日
    浏览(21)
  • 通过OpenIddict设计一个授权服务器02-创建asp.net项目

    在这一部分中,我们将创建一个ASPNET核心项目,作为我们授权服务器的最低设置。我们将使用MVC来提供页面,并将身份验证添加到项目中,包括一个基本的登录表单。 正如前一篇文章中所说,授权服务器只是另一个web应用程序。以下内容将指导您使用用户名密码登录来设置

    2024年01月18日
    浏览(34)
  • asp.net core 项目从本地部署到远程云服务器

    今天向大家详细介绍一下,如何将一个.net core项目部署到远程云服务器,我的服务器镜像为 window server 2019. 1.安装IIS 首先在服务器上安装IIS(我的是最新的iis10),我已经安装完毕,这个安装操作比较简单,自行谷歌。 安装完成后会看到下面的界面: 2.安装web deploy程序 该程序的功能: 它

    2023年04月22日
    浏览(34)
  • windows服务器自带IIS搭建网站并发布公网访问【内网穿透】

    转载自远程源码文章:【IIS搭建网站】本地电脑做服务器搭建web站点并公网访问「内网穿透」 在网上各种教程和介绍中,搭建网页都会借助各种软件的帮助,比如网页运行的Apache和Nginx、数据库软件MySQL和MSSQL之类,为方便用户使用,还出现了XAMPP、PHPStudy、宝塔面板等等一系

    2023年04月11日
    浏览(37)
  • Asp .Net Web应用程序(.Net Framework4.8)网站发布到IIS

    开启IIS 如果已开启跳过这步 打开控制面板-程序  打开IIS 发布Web程序(.Net Framework 4.8 web网页) 进入IIS管理器新建一个应用池 新建一个网站 网站创建完毕 为文件夹添加访问权限  如果不添加访问权限,运行时将会得到如下错误 设置权限   勾选上面添加的账户的修改权限 

    2024年01月21日
    浏览(67)
  • ASP.NET Web Forms - 服务器控件

    服务器控件是服务器可理解的标签。 下面列出的代码是从上一章中复制的: 上面的代码反映出经典 ASP 的局限性:代码块必须放置在您想要输出显示的位置。 通过经典 ASP,想要把可执行代码从 HTML 页面中分离出来是不可能的。这让页面变得难以阅读,也难以维护。 ASP.NET 通

    2024年02月19日
    浏览(24)
  • 【C#】Kestrel和IIS服务器下的同步与异步配置

    最近在回看自己写的代码时,发现服务配置里最开头写了两段代码,第一感觉,这是啥功能,太久有点生疏了,经过一顿搜索和回顾,简单整理如下 Kestrel是ASP.NET Core框架中的一个跨平台的Web服务器。它是ASP.NET Core应用程序默认的HTTP服务器,并且可作为独立的Web服务器来托管

    2024年02月15日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包