注:遇到问题要先查看日志,配置时遇到的问题在windows窗口搜索 事件查看器 Windows日志下,应用程序里,来源为IIS AspNetCore Module V2为配置服务器,并启动时产生的日志,错误信息会记录在此
如果是通讯时遇到的问题,查看的日志在发布的目录下, C:\inetpub\logs\LogFiles\ 为通讯时的日志,找到错误代码就可以查看是否发生通讯错误
1.程序上需要注意
① 在程序的program里不要自定义端口,使用默认的端口配置就好 ,把自定义端口禁用掉。在iis里配置端口
/ 设置自定义端口,默认为 5000,暂关闭
/*var port = "45101";
if (args.Length > 0)
{
port = args[0]; // 从命令行参数中获取端口号
}*/
// 监听端口,部署iis上,暂关闭内部端口设置
//app.Urls.Add($"http://localhost:{port}");
②在项目菜单中,找到属性,进入生成,常规,找到文档文件,勾选生成包含API文档的文件
③发布目录时,文件发布选项中,不要勾选 生成单个文件,不然会报错
④可选项,最好把配置的网页启动也去掉
2.IIS安装注意
①搜索 iis ,查看本机有没有安装iis。win+R进入运行窗口,输入 inetmgr。(这里有坑,通过搜索功能可能会打开成iis的老版本,所以建议从运行窗口进入)
如果没有安装
打开“控制面板” > “程序和功能” > “启用或关闭 Windows 功能”(或使用win+R
键打开运行程序,在输入框里输入:OptionalFeatures
点击确定)。
找到“Internet Information Services”,全勾选上
点击确定,等待安装
②需要去微软官网下载 dotnet-hosting-8.0.8-win.exe 并安装
3.IIS配置注意
①首先,发布完的一整个文件夹,要Copy到 C:\inetpub 目录下,然后再iis中,添加的物理路径要选中这个文件夹,如:C:\inetpub\testapi 。端口设置注意不要冲突,选不常用的端口
②给予文件夹访问权限,右键testapi文件夹,属性,安全,编辑,添加,高级,立即查找,选中everyone,确定。回到安全,给everyone的权限勾选 完全控制,确定就好
③在iis管理器页面,双击应用程序池,找到testapi,右键 基本设置,将CLR版本选为 无托管代码
④在iis管理器页面,找到网站下面的testapi,找到模块,双击模块进入(如果没有 安装 dotnet-hosting-8.0.8-win.exe的话进不去),移除掉WebDav模块,它会阻止httpput和httpdelete请求