今天第一次用VS2022 创建一个.NET 8 的 WEB API 项目,在VS里面测试时一切正常。
但发布到 IIS 以后,发现无法正常使用。
首先是IIS 无法调用服务,也打不开VS2022中使用的 /swagger/index.html 页面。
研究了许久,发现需要给IIS 所在的电脑,除了安装.NET 8 运行时,还必须再另外安装一个.NET8 的IIS 运行时
相关页面地址 下载 .NET 8.0 (Linux、macOS 和 Windows) (microsoft.com) 。
安装了这个以后,IIS 里面 WEB API 可以使用了,类似以下页面地址
http://localhost:8090/WeatherForecast
但VS 中可以使用的 swagger 页面,http://localhost:5111/swagger/index.html
在IIS 中无法打开。
发现是因为VS 自动生成的代码中,默认只能在IIS 测试模式下使用,发布到IIS 以后不能使用,需要把下面这个代码注释掉,或者添加 启动参数,才能使用