c# - 在asp.net core中设置HTTPGet调用的MaxURLLength

标签 c# asp.net-core azure-service-fabric kestrel-http-server

您好,我需要使用 kestral 服务器更新在 Service Fabric 集群上运行的 ASP.NET Core 服务的 maxurllength。 查看其他解决方案,人们建议对注册表和 web.config 进行更改,但如果 Kestral 服务器在 Service Fabric 上运行 ASP.NET Core,我们没有任何 web.config 文件。 Kestral server limits也没有公开这样做的方法。在 ASP.net core 中可以这样做吗?

更新:

我使用 Service Fabric 反向代理来访问该服务,有问题的 URL 示例是:

http://localhost:19081/{appname}/{servicename}/test-backend/v1.0/mode/1/context/5e2550ec-539a-4ea0-81b5-f783ce3f7c48/file/60917927-8a7d-4702-93e4-e2a5ea337937/version/2d826211703581a186b3d5d840e78117903189a5/openfile/W3sia2V5IjoiNjA5MTc5MjctOGE3ZC00NzAyLTkzZTQtZTJhNWVhMzM3OTM3OjJkODI2MjExNzAzNTgxYTE4NmIzZDVkODQwZTc4MTE3OTAzMTg5YTU6MCIsImNvbnRleHRJZCI6IjVlMjU1MGVjLTUzOWEtNGVhMC04MWI1LWY3ODNjZTNmN2M0OCIsImlNb2RlbElkIjoiNjA5MTc5MjctOGE3ZC00NzAyLTkzZTQtZTJhNWVhMzM3OTM3IiwiY2hhbmdlU2V0SWQiOiIyZDgyNjIxMTcwMzU4MWExODZiM2Q1ZDg0MGU3ODExNzkwMzE4OWE1Iiwib3Blbk1vZGUiOjEsIl9fbmFtZV9fIjoiSU1vZGVsVGlsZVJwY0ludGVyZmFjZV9JTW9kZWxUb2tlbiIsIl9fdW5yZWdpc3RlcmVkX18iOmZhbHNlfSwiMHgyWdpc3RlcmVkX18iOmZhbHNlfSwiMHgy

最后一个 URL 段是一些编码字符串,这就是问题所在。

最佳答案

对于 ASP.NET Core 1.1 KestrelServerLimits.MaxRequestLineSize 应该就是您要找的。

对于 ASP.NET Core 2.1 KestrelServerLimits.MaxRequestLineSize 应该就是您要找的。

两者的默认值都是 8Kb,因此应该比 Chrome 和其他浏览器提供的默认 2083 Url 长度大得多。

如果您使用 Service Fabric 反向代理公开 API,则问题应该出在反向代理而不是 Kestrel。

Service Fabric 反向代理使用 Windows HTTP.sys 驱动程序公开 http 终结点,作者:default每个段限制为 260 个字符(每个斜杠“/”之间的值),如果是这种情况,您应该使用其他值配置您的计算机,在这种情况下,您应该将值设置为 UrlSegmentMaxLength

为此,您必须创建一个名为 UrlSegmentMaxLengthDWORD在以下注册表项下: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters 并将其设置为 0 到 32,766 之间的数字。

我认为如果您提供真正的问题,我们可以帮助提供更好的解决方案。

关于c# - 在asp.net core中设置HTTPGet调用的MaxURLLength,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53280723/

相关文章:

asp.net-core - 使用 .Net Core 中的 PKCE 和 Okta 从 Swagger UI 连接 OpenID

azure - Azure 服务结构无状态服务的扩展

azure-service-fabric - Azure Service Fabric 中的发布/订阅模式

c# - 在 C# 中处理字体对象

c# - PresentationFramework.dll 中出现“System.Reflection.TargetInvocationException”

MySqlException : Table 'membership.aspnetusertokens' doesn't exist ASP. NET Core 5 身份

c# - 在 .Net Core 中测试 Controller 总是返回 false?

c# - 使用 ffmpeg 在连接时间制作较低比特率(较低分辨率)的视频

c# - 如何从隐藏表单获取文本框数据到当前表单?

azure-service-fabric - Service Fabric可靠的队列长时间运行