目前有许多项目或web产品采用微软iis技术栈,即asp.net webform,asp.net core,asp.net mvc。虽然大多数C#开发的框架或平台是基于最新的.net 6编写,但在开发后部署到服务器时,一般使用IIS做为web服务器。当然c#也可以跨平台部署到Linux系统,c#部署到linux我们后面再讲,今天我们先讲一些如何在iis中部署c#项目并配置https访问。
IIS配置https说明
要在IIS上实现http请求自动转https请求,有很多方法可以在网上搜索到,我只介绍通过个人测试和成功的方法。这种方法是URL重写,需要做IIS实现一些扩展组件的安装。需要注意的是,低版本IIS我没有测试这种方法是否成功,所以建议确保该功能的成功实现IIS升到最新。
首先需要为IIS安装web平台安装工具扩展,它在IIS中类似于扩展包管理工具,安装好web平台安装工具以后,可以在上面看到各式各样的IIS扩展。当然,我们也可以直接下载相应的扩展包进行安装,下面贴上微软官网 IIS web平台安装工具下载页面 网络平台安装程序 : 微软 IIS 官方网站 (microsoft.com)。也可以从本站下载web平台安装工具 WebPlatformInstaller_x64_en-US.msi(密码:7831)
下载安装URL 重写
该工具目前为2.x版,微软官网直接下载页面地址 URL Rewrite : The Official Microsoft IIS Site (iis-umbraco.azurewebsites.net)。也可从本站下载URL 重写工具: IIS URL重写工具下载 (密码:7831),下载完成后直接双击msi安装文件开始安装。以下是安装过程中的一些截图。
网址重定向
访问者输入浏览器时http://cisharp.com链接时,实现自动跳转https://cisharp.com。需要在web.config配置文件中进行URL重定写配置,配置内容如下
<system.webServer>
<rewrite>
<rules>
<clear />
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>