1

我们有一个使用 HttpSelfHostServer 的 Windows 服务,它在大多数情况下都能正常工作,但是,我们最近发现了一个错误,即“长”网址总是被视为无效而被丢弃。

“好”网址的示例:http://localhost:35353/api/files/ZmlsZTovLy9DOi9Vc2Vycy9kYXZpZC9Eb3dubG9hZHMvU2FtcGxlIERvY3VtZW50cy9BWklQUEVSXzAwMDc0OTUuaHRt/permissions

“无效”网址的示例:http://localhost:35353/api/files/ZmlsZTovLy9DOi9Vc2Vycy9kYXZpZC9Eb3dubG9hZHMvU2FtcGxlIERvY3VtZW50cy9BQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjEyMzQ1Njc4OTBBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjEyMzQ1Njc4OTAvQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoxMjM0NTY3ODkwL0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMTIzNDU2Nzg5MEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMTIzNDU2Nzg5MC50eHQ=/permissions

我注意到,当 /files/{file}/permissions 之间的加密字符串 {file} 大于 260 个字符时,它会失败,但当它少于 260 个字符时它会起作用。260是硬限制还是有什么办法可以增加?谢谢您的帮助!

4

3 回答 3

2

这听起来像 MAX_PATH 被用来限制 URL - 我猜这是一个文件系统限制,我猜它已经内置到自托管服务器中。

请参阅此处的“最大路径长度限制”:http: //msdn.microsoft.com/en-us/library/aa365247.aspx

于 2013-10-22T10:44:07.490 回答
1

要指定扩展长度的路径,请使用“\\?\”前缀。例如,

\\?\D:\很长的路径

代替

D:\路径

于 2013-10-24T10:01:04.587 回答
1

我没有使用自托管 API 的经验,但可能是 URL 或查询字符串的长度有问题,因此您可能需要查看一下:使用 [Authorize] 时请求超出配置的 maxQueryStringLength

于 2013-10-28T20:59:50.453 回答