首页 > 编程语言 >在开发系统中将 .net core 6.0 Web API 部署到 IIS 无法正常工作

在开发系统中将 .net core 6.0 Web API 部署到 IIS 无法正常工作

时间:2024-05-29 23:33:45浏览次数:25  
标签:c# .net-core iis asp.net-core-webapi

发布到本地文件夹并配置到 IIS 进行测试的 .net core 6.0 Web api 无法正常工作。

This site can't be reachedlocalhost refused to connect. 请尝试:

检查连接 检查代理和防火墙 ERR_CONNECTION_REFUSED

已执行

步骤
    在本地安装 IIS安装 .net 托管捆绑包 6.0.3
  1. 将 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:7000http://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

相关文章

  • css17 CSS Height, Width
    https://www.w3schools.com/css/css_dimension.aspTheCSSheightandwidthpropertiesareusedtosettheheightandwidthofanelement.TheCSSmax-widthpropertyisusedtosetthemaximumwidthofanelement.Thiselementhasaheightof50pixelsand......
  • 02Docker中的镜像和容器命令
    镜像和容器Docker中有镜像和容器的概念镜像(Image):Docker将应用程序及其运行所需要的依赖、函数库、环境、配置等文件打包在一起称为镜像即硬盘中的文件容器(Container):镜像中的应用程序运行起来并加载到内存中后形成的进程就是容器,一个镜像可以运行多个容器将来形成......
  • css18 CSS Box Model
    https://www.w3schools.com/css/css_boxmodel.aspAllHTMLelementscanbeconsideredasboxes.TheCSSBoxModelInCSS,theterm"boxmodel"isusedwhentalkingaboutdesignandlayout.TheCSSboxmodelisessentiallyaboxthatwrapsarounde......
  • 深度学习笔记_卷积神经网络CNN
    卷积层实际上是内积,就是把一个图片分成nnn个区域,分别对每个区域用fliter做内积(对应位置相乘,最后求和)池化层存在意义卷积层提取出的特征太多了,要用池化......
  • Flutter 中的 NestedScrollView 小部件:全面指南
    Flutter中的NestedScrollView小部件:全面指南Flutter是一个由Google开发的跨平台UI框架,它允许开发者使用Dart语言来构建高性能、美观的移动、Web和桌面应用。在构建复杂的滚动界面时,NestedScrollView是一个非常有用的组件,它允许您将一个滚动视图嵌套在另一个滚......
  • Debug-012-el-popover 使用 doClose() 关闭窗口不生效的处理方案
     前言:    今天上午碰见一个非常奇怪的情况:一样的方法实现的功能,效果却不一样。两个页面都是使用的doClose()去关闭的el-popover,其中有一个就是不生效,找不同找了半天,始终不得其解。请看效果吧:el-popover-doClose()-ok视频1(el-popover-doClose()-关闭成功的)e......
  • [LeetCode] 1365. How Many Numbers Are Smaller Than the Current Number 有多少小于
    Giventhearray nums,foreach nums[i] findouthowmanynumbersinthearrayaresmallerthanit.Thatis,foreach nums[i] youhavetocountthenumberofvalid j's suchthat j!=i and nums[j]<nums[i].Returntheanswerinanarray.Example1......
  • 原生WPF使用IOC容器
    1、删除App.xaml中的StartupUri=""2、改造App.xaml.cspublicpartialclassApp:Application{publicApp(){ServiceProvider=GetServiceProvider();}privateIServiceProviderGetServiceProvider(){ServiceC......
  • Windows驱动开发涉及到许多重要的概念和技术,包括调试、进程管理、文件操作、注册表访
    Windows驱动开发涉及到许多重要的概念和技术,包括调试、进程管理、文件操作、注册表访问、系统调用、IRP(I/ORequestPacket)和锁原理。以下是对每个主题的简要介绍:调试Windows驱动程序的调试通常涉及使用调试器(如WinDbg)来分析驱动程序的运行时行为,包括查看内存、寄存器状态、......
  • Python-使用OpenCV(二)_第一个示例程序
    1、创建项目2、创建代码importcv2#加载图片image=cv2.imread("C:\\Users\\Administrator\\Pictures\\Screenshots\\20240311220733.png")#显示图片cv2.imshow("Image",image)#等待任意键被敲击cv2.waitKey(0)#关闭所有窗口cv2.destroyAllWindows()3、结......