发布到本地文件夹并配置到 IIS 进行测试的 .net core 6.0 Web api 无法正常工作。
This site can't be reachedlocalhost refused to connect. 请尝试:
检查连接 检查代理和防火墙 ERR_CONNECTION_REFUSED
已执行
步骤- 在本地安装 IIS安装 .net 托管捆绑包 6.0.3
- 将 Web API 配置为 IIS 站点。 通过 IIS 操作面板中的浏览选项连接 Web API。 出现上述错误。
如果我注释下面一行,它就会工作 app.UseHsts(); app.UseHttpsRedirection();
请指示 我想模拟服务器环境并在本地进行测试
了解,正在尝试在本地 IIS 上运行 .NET 6.0 Web API 并遇到问题。注释掉 app.UseHsts()
和 app.UseHttpsRedirection()
虽然可以暂时解决问题,但这并不是一个理想的长期解决方案,因为它会禁用重要的安全功能。
以下是解决“localhost refused to connect”错误并正确配置 IIS 以运行的 API 的步骤:
1. 确认 API 项目配置
-
启动 URL: 确保的 API 项目配置为使用正确的启动 URL。在项目属性的“调试”选项卡中,将“启动 URL”设置为的 API 地址,例如
https://localhost:7000
或http://localhost:5000
。 -
launchSettings.json: 确认
launchSettings.json
文件(位于 Properties 文件夹中)包含正确的配置信息,例如应用程序 URL、SSL 端口等。可以尝试删除此文件并重新构建项目,让 Visual Studio 自动生成一个新的配置文件。
2. 检查 IIS Express 设置(如果适用)
- 如果使用的是 Visual Studio 的内置 IIS Express 服务器,请确保它正在运行,并且的项目已配置为使用它。 可以在 Visual Studio 的运行按钮旁边找到下拉菜单,选择的项目。
3. 验证 IIS 配置
-
应用程序池:
- 确保应用程序池设置为“无托管代码”,因为 .NET Core 应用程序自带运行时。
- 检查应用程序池是否已启动。
- 验证应用程序池是否使用正确的 .NET CLR 版本(在本例中为“无托管代码”)。
-
绑定:
- 确认的网站绑定到正确的 IP 地址和端口。
- 检查是否启用了 HTTP 或 HTTPS,以及是否与的代码匹配。
-
防火墙:
- 确保 Windows 防火墙或任何第三方防火墙软件没有阻止尝试访问的端口。 可以尝试暂时禁用防火墙进行测试。
4. SSL 证书(如果使用 HTTPS)
-
如果的 API 使用 HTTPS,请确保已在 IIS 中正确配置 SSL 证书。 可以创建一个自签名证书用于本地开发和测试。
-
信任证书:
- 对于本地开发,需要信任自签名证书。 可以通过双击证书文件并按照提示进行操作来实现。
5. 运行应用程序并测试
- 启动的应用程序并尝试在浏览器中访问它。 应该能够访问的 API,而不会出现“localhost refused to connect”错误。
其他建议:
- 以管理员身份运行 Visual Studio: 有时,权限问题可能会导致连接问题。 尝试以管理员身份运行 Visual Studio。
- 重启: 如果一切配置正确,但问题仍然存在,请尝试重新启动计算机。
- 日志: 检查 IIS 和应用程序日志以获取有关错误的更多信息。
通过执行上述步骤,应该能够解决连接问题并在本地 IIS 上成功运行 .NET 6.0 Web API。
标签:c#,.net-core,iis,asp.net-core-webapi From: 78550387