首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ASP.NET Core grpc-Web on IIS返回值404

基础概念

ASP.NET Core gRPC-Web 是一种允许浏览器通过 HTTP/1.1 或 HTTP/2 与 gRPC 服务进行通信的技术。gRPC 是一种高性能、开源和通用的 RPC 框架,使用 Protocol Buffers 作为接口定义语言(IDL)。IIS(Internet Information Services)是微软的一个 Web 服务器,用于托管 Web 应用程序。

相关优势

  1. 性能:gRPC 使用 HTTP/2 和 Protocol Buffers,提供了比传统的 RESTful API 更高的性能。
  2. 类型安全:通过 Protocol Buffers 定义服务接口,可以在编译时捕获类型错误。
  3. 跨平台:gRPC 支持多种编程语言,便于构建跨平台的微服务架构。
  4. IIS 兼容性:通过 gRPC-Web,可以在现有的 IIS 环境中部署 gRPC 服务,无需额外的服务器配置。

类型

  • 客户端库:用于在不同语言中实现 gRPC 客户端。
  • 服务器端库:用于在不同语言中实现 gRPC 服务器。
  • gRPC-Web 代理:用于在浏览器和 gRPC 服务器之间进行通信。

应用场景

  • 微服务架构:gRPC 适用于构建高性能的微服务。
  • 实时通信:gRPC 支持双向流和流控制,适用于实时通信应用。
  • 跨平台开发:gRPC 支持多种编程语言,便于跨平台开发。

问题:ASP.NET Core gRPC-Web on IIS 返回值 404

原因

返回值 404 表示请求的资源未找到。在 ASP.NET Core gRPC-Web on IIS 的场景中,可能是以下原因之一:

  1. gRPC-Web 代理配置错误:gRPC-Web 代理未正确配置,导致浏览器无法与 gRPC 服务器通信。
  2. 路由配置错误:ASP.NET Core 的路由配置未正确设置,导致请求无法匹配到相应的 gRPC 服务。
  3. IIS 配置错误:IIS 的配置未正确设置,导致无法正确处理 gRPC 请求。

解决方法

  1. 检查 gRPC-Web 代理配置: 确保 gRPC-Web 代理已正确配置并运行。可以使用 grpc-web-devtools 进行调试。
  2. 检查 ASP.NET Core 路由配置: 确保在 Startup.csProgram.cs 中正确配置了 gRPC 服务的路由。例如:
  3. 检查 ASP.NET Core 路由配置: 确保在 Startup.csProgram.cs 中正确配置了 gRPC 服务的路由。例如:
  4. 检查 IIS 配置: 确保 IIS 已正确配置以处理 gRPC 请求。需要在 web.config 中添加以下配置:
  5. 检查 IIS 配置: 确保 IIS 已正确配置以处理 gRPC 请求。需要在 web.config 中添加以下配置:
  6. 检查 URL 路径: 确保浏览器请求的 URL 路径正确,并且与 gRPC 服务的路由配置匹配。

参考链接

通过以上步骤,应该能够解决 ASP.NET Core gRPC-Web on IIS 返回值 404 的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • IIS中的 Asp.Net Core 和 dotnet watch

    在基于传统的.NET Framework的Asp.Net Mvc的时候,本地开发环境中可以在IIS中建立一个站点,可以直接把站点的目录指向asp.net mvc的项目的根目录。...Asp.Net Core的项目需要先Pubilsh一下才能部署到IIS,而且中间需要一个AspNetCoreModule的模块来中转一下。...这就使得IIS不再负责Asp.Net Core的运行了,而是作为一个反向代理来使用的,如下图所示: ? 那么如何优雅在满足上面提到的2点需要呢?...IIS中的 dotnet watch 如何把Asp.Net Core部署到IIS这里就不解释了,只贴一下我写的Cake部署脚本: 1 #addin "Cake.IIS" 2 #addin "Cake.Hosts...使用附加到进程调试IIS中的Asp.Net Core 由于Asp.Net Core是单独运行的Console应用,所以调试部署在IIS中的Asp.Net Core的时候就不是像之前那样附加到w3wp进程了

    1.7K90

    ASP.NET Core 2.2使用IIS部署要注意的路径问题

    ASP.NET Core 2.2 推出已经有一段时间了,其中有个新功能,能够使用新的AspNetCoreModuleV2并且在IIS上使用InProcess模式部署,以大幅提高性能。...如果不知道什么是InProcess模式的话,简单来说,就是原先ASP.NET Core确实可以跑在IIS上,但其实是由一个名为AspNetCoreModule的IIS模块调用dotnet.exe启动kestrel...而ASP.NET Core 2.2里新增了InProcess模式,可以在IIS自己的w3wp进程中跑你的应用。这个InProcess的In也就是In在了w3wp里的意思。...view=aspnetcore-2.2&tabs=windows#in-process-hosting-model 生产环境大爆炸 根据原先对ASP.NET Core的了解,我开发时候一般不会使用IIS...ASP.NET Core 2.2 以后,再也不能想当然地认为开发ASP.NET Core 用不用IIS都无所谓了,真的是有些东西在IIS和Kestrel下行为不一致,因此推荐大家如果生产环境在使用IIS

    2.9K30

    ASP.NET Core 5 在IIS,Nginx,Caddy下的性能测试

    导语 ASP.NET Core 从 2.2 版本起,在 IIS 下可以使用 InProcess 模式提高性能,国外大神 Rick Strahl 对此有一片详细的文章。...3年过去了,现在 ASP.NET Core 已经到了 5.0 版本,不同服务器之间的性能有什么变化呢?我们来一起看一下吧。...曾经的结论 Rick Strahl 在 原文* 中测试了 Windows 下 ASP.NET Core 2.2 在 Kestrel、IIS InProcess、IIS Out of Process 中的性能...今天的实验 Rick 没有测试相同配置的 Linux 服务器跑 ASP.NET Core 与 Windows 服务器的区别。...很多朋友想知道,在 2021年跑 ASP.NET Core 5.0 到底用 Windows 还是 Linux 性能好,因此我决定用类似的方法在相同配置的服务器上重新跑一下 ASP.NET Core 5.0

    2.3K20

    【译】gRPC vs HTTP APIs

    写在开头 现在,ASP.NET Core使开发人员可以构建gRPC服务。gRPC是一个远程过程调用框架,专注于高性能和开发人员的生产力。...ASP.NET Core 3.0中集成了gRPC,因此您可以结合使用现有的ASP.NET Core日志系统,配置系统,身份验证模式来构建新的gRPC服务。 ?   ...结论   gRPC是ASP.NET Core开发人员的一个强大的新工具。尽管gRPC不能完全替代HTTP API,但在某些情况下可以提供更高的生产率和性能优势。   ...ASP.NET Core上的gRPC现在已经可用了!如果您想了解有关gRPC的更多信息,请查看以下资源: 阅读gRPC for .NET Core文档。 试用gRPC入门教程。   ...此外,这里译者也推荐一下俺们大成都的晓晨Master的最新博文系列:ASP.NET Core gRPC入门全家桶 。

    2K20

    ASP.NET Core快速入门(第1章:介绍与引入)--学习笔记

    任务1:课程介绍 1、介绍与引入 2、配置管理 3、依赖注入 4、ASP.NET Core HTTP介绍 5、认证与授权 6、ASP.NET Core MVC 任务2:环境安装 下载地址:https:/...打开 PowerShell(管理员),输入以下命令验证是否安装成功 PS C:\WINDOWS\system32> dotnet 任务3:在控制台创建ASP.NET Core应用程序 查看模板: PS...C:\WINDOWS\system32> dotnet new --help 新建项目 ASP.NET Core Web App (Model-View-Controller) PS D:\jessetalk...任务4:在VS中创建ASP.NET Core应用程序 在 VS 中通过 IIS Express 启动 ? 官方推荐在开发和测试的时候通过控制台启动,因为通过控制台启动之后,日志会自动输出 ? ?...任务5:部署到IIS Windows10如何安装IIS:https://jingyan.baidu.com/article/eb9f7b6d9e73d1869364e8d8.html 下载 ASP.NET

    88620

    一个Mini的ASP.NET Core框架的实现

    一、ASP.NET Core Mini ?   ...在2019年1月的微软技术(苏州)俱乐部成立大会上,蒋金楠老师(大内老A)分享了一个名为“ASP.NET Core框架揭秘”的课程,他用不到200行的代码实现了一个ASP.NET Core Mini框架...本文基于蒋金楠老师的那篇博客,基于学习者的视角Run一遍这个ASP.NET Core Mini框架,一步一步地了解它的流程,了解中间件在ASP.NET Core中的作用。...首先,会通过一个WebHostBuilder来构造一个WebHost,这个过程会经历指定具体的Server(比如ASP.NET Core中的Kestrel或IIS等等),然后指定要注册的中间件(比如MVC...我们知道,在ASP.NET Core中封装了Kestrel和IIS两个Server供我们使用,那么它们肯定有一个抽象层(这里是接口),定义了他们共有的行为,这里我们也写一个IServer: public

    1.1K20

    部署基于.netcore5.0的ABP框架后台Api服务端,以及使用Nginx部署Vue+Element前端应用

    ABP框架的后端是基于.net core5.0 的Asp.net core 应用,因此和常规的Asp.net core 应用部署一样;而Vue+Element前端应用则是基于nodejs的应用,部署方式又有所不同...1、部署基于.netcore5.0的ABP框架后台Api服务端 1)安装.net core 环境 在部署asp.net core服务前,需要在服务器中安装必须的环境。...因为Hosting Bundle包括了.Net Core运行时和IIS支持。下载完成以后,双击exe文件即可进行安装即可。...8867-20201210165449499-1979013857.png 顺利弄完asp.net core的后端API服务,那么下面就需要同时把Vue+Element的前端部署在服务端了。...html/dist; index index.html index.htm; try_files $uri $uri/ /index.html =404

    1.6K30
    领券