部署到IIS的gRPC服务调用失败,本地运行正常求助
解决IIS部署gRPC服务后仅健康检查可用的问题
核心原因分析
IIS作为反向代理会接管端口转发,你的Kestrel硬编码端口配置会和IIS站点绑定冲突;同时IIS对HTTP/2的支持有特定要求,这导致依赖HTTP/2的gRPC请求无法正确转发到Kestrel服务。
分步解决方案
1. 移除Kestrel硬编码端口配置
修改appsettings.json,删除EndPoints节点(IIS会通过ASP.NET Core模块接管端口转发,Kestrel无需指定固定端口),保留HTTP协议兼容配置即可:
{ "AllowedHosts": "*", "Kestrel": { "EndpointDefaults": { "Protocols": "Http1AndHttp2" } } }
2. 验证ASP.NET Core模块配置(web.config)
确保发布生成的web.config使用AspNetCoreModuleV2并正确配置转发:
<?xml version="1.0" encoding="utf-8"?> <configuration> <location path="." inheritInChildApplications="false"> <system.webServer> <handlers> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" /> </handlers> <aspNetCore processPath="dotnet" arguments=".\YourApp.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" /> <httpProtocol> <customHeaders> <add name="Transfer-Encoding" value="chunked" /> </customHeaders> </httpProtocol> </system.webServer> </location> </configuration>
- 确认服务器已安装ASP.NET Core Hosting Bundle(包含AspNetCoreModuleV2)
- 若使用
outofprocess托管模型,需确保模块能正确转发HTTP/2请求
3. 配置IIS站点的HTTP/2支持
HTTPS场景(推荐)
- 站点绑定HTTPS时,在绑定的高级设置中勾选
HTTP/2协议 - 确保证书使用TLS 1.2或更高版本(gRPC强制要求TLS 1.2+)
HTTP场景(仅测试用)
IIS默认不支持明文HTTP/2,需修改注册表启用:
- 打开注册表编辑器,定位到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters - 添加DWORD值
EnableHttp2Cleartext,设置值为1 - 重启HTTP服务:执行命令
net stop http && net start http(会影响IIS等依赖HTTP的服务)
4. 调整客户端调用地址
客户端必须使用IIS站点的绑定地址(而非Kestrel配置的端口),例如:
- 若IIS站点绑定
https://your-server-domain:443,则客户端连接地址应为该URL - 若使用HTTP绑定
http://your-server-domain:80,则客户端连接对应HTTP地址
5. 验证gRPC原生健康检查接口
访问gRPC原生健康检查接口(区别于HTTP的/health),确认服务可用性:
- 使用gRPC客户端调用
grpc.health.v1.Health/Check方法,或用grpcurl工具测试:grpcurl -d '{"service": "VSBS.EEM.DataSourceAgentMock.Server.Services.InformationModel"}' your-server-domain:443 grpc.health.v1.Health/Check
关键注意事项
- IIS版本需为10.0.17763及以上(对应Windows Server 2019/Windows 10 1809+),才能支持HTTP/2转发
- 应用池必须设置为No Managed Code,避免.NET Framework和.NET Core运行时冲突
内容的提问来源于stack exchange,提问作者blfuentes
相关产品推荐
相关产品推荐

