c#webapi的发布

这篇文是因为第一次做api的发布而记的流程,希望不要有人像我这么踩坑(本意是要实现小程序的真机调试,api的发布是其中的一个环节)

一:准备好一个要发布的api项目

项目右键->发布
c#webapi的发布_第1张图片
新建->选择文件夹
c#webapi的发布_第2张图片
文件夹位置我没有改,在完成之后会自动在你的项目中生成这个发布文件夹,到时候IIS配置里面会用到这个路径
c#webapi的发布_第3张图片
发布之后输出列表会显示发布成功

二:本地IIS配置和访问

首先你得启用了IIS(控制面板->程序与功能->启用或关闭Windows功能->Internet Information Services),不然直接搜索IIS是没有的
c#webapi的发布_第4张图片
打开网站->添加网站->网站名称自己可以随便定义->物理路径选到你刚刚要发布的项目的物理路径(我这里是选到项目下的bin\app.publish),忘记标端口了,端口要改为和自己不冲突的,不要写默认80端口,其他就不要填了
c#webapi的发布_第5张图片
确定即可

三:网站发布遇到的错

重头戏来了,bug环节,点击右侧的浏览,你可能会有如下错误(也是我的错)
c#webapi的发布_第6张图片
第一个错,配置节500.19
c#webapi的发布_第7张图片
管理员身份运行cmd,输入如下命令,会出现解除锁定

%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers
%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/modules

接着,我再次浏览网站又有了新的错误
c#webapi的发布_第8张图片
在cmd窗口输入

%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i

他果不其然的出错了

C:\WINDOWS\system32>c:\windows\microsoft.net\framework64\v4.0.30319\aspnet_regiis.exe -i 
Microsoft (R) ASP.NET RegIIS 版本 4.0.30319.0 
用于在本地计算机上安装和卸载 ASP.NET 的管理实用工具。 
版权所有(C) Microsoft Corporation。保留所有权利。 
开始安装 ASP.NET (4.0.30319.0)。 
此操作系统版本不支持此选项。管理员应使用“打开或关闭 Windows 功能”对话框、“服务器管理器”管理工具或 dism.exe 命令行工 具安装/卸载包含 IIS8 的 ASP.NET 4.5。有关更多详细信息,请参见 http://go.microsoft.com/fwlink/?LinkID=216771。 
ASP.NET (4.0.30319.0)安装完毕。

在网上看到有人说要启用windows功能里面的如下.net框架。我其实感觉问题不出在这,因为我用到不就是4.0以上版本吗?关3.5啥事,但是我还是试了,后面成功也不知道和这步有没有关系
c#webapi的发布_第9张图片
众所周知,事情是没有这么简单的,问题依然存在,但是我找到了一篇博文,很感谢他。
利用dism工具,执行以下命令(就是在管理员身份在cmd中运行以下命令)

dism /online /enable-feature /featurename:IIS-ISAPIFilter
dism /online /enable-feature /featurename:IIS-ISAPIExtensions
dism /online /enable-feature /featurename:IIS-NetFxExtensibility45
dism /online /enable-feature /featurename:IIS-ASPNET45
 

在安装过程中可能遇到类似于
在这里插入图片描述
就先开启下错误最后给出的服务,上面报错,就先开启NetFx4Extended-ASPNET45
c#webapi的发布_第10张图片

之后就能愉快的使用了,嘿嘿
c#webapi的发布_第11张图片
希望我的文章可以给你带来帮助,江湖再见!

你可能感兴趣的:(c#本地api发布,c#,api,iis)