C# web Api 长 url 不工作

C# web Api Long url Not working

我有以下网站 API url 无法正常工作

www.localproject.com:843/api/user/validate/eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9eyJ0ZW1wVXJsIjoie1wiQ3VzdG9tZXJJZFwiOjEsXCJDb3Vyc2VJZFwiOjEsXCJUb2tlblwiOm51bGwsXCJFeHBpcnlcIjpcIjIwMTgtMDQtMThUMTc6MzU6MTMuOTQ2MjM2NCswNTowMFwifSJ9uvm7jZ3us5UFa1hqh4bod2cSamcxF2rRUbfxs7DHQs

每当我点击上面的内容时 url 它会给我以下错误

Bad Request - Invalid URL

HTTP Error 400. The request URL is invalid.

我也将 web.config 更新为这个,但仍然无法正常工作。

 <httpRuntime targetFramework="4.6.1" maxRequestLength="20480" maxUrlLength="6144" relaxedUrlToFileSystemMapping="true" />

我也尝试过编辑注册表,但没有成功。

如何允许长 url 使用网络 api?

默认情况下,HTTP.sys 允许 255 个段,每个段的最大长度为 260 个字符。 260 个字符的限制是您看到此问题的原因。

要解决此问题,您需要更改注册表。 导航: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters

添加一个名为 UrlSegmentMaxLength 的 DWORD 值并将其值设置为 500 或 1000 之类的值。

虽然您可能可以通过命令行重新启动 HTTP 系统服务来避免重新启动 "net stop http" 和 "net start http",但是因为其他一些服务依赖于此服务,例如 WWW、Print Spooler、 SSDP Discovery 等。我仍然会建议重新启动服务器。