服务堆栈返回 IOException:文件名、目录名或卷标语法不正确

Posted

技术标签:

【中文标题】服务堆栈返回 IOException:文件名、目录名或卷标语法不正确【英文标题】:Service Stack returns IOException: The filename, directory name, or volume label syntax is incorrect 【发布时间】:2021-10-30 12:38:52 【问题描述】:

我们在 .NetCore3.1 (https://www.example.com) 上创建了一个 servicestack API。当使用 https://www.example.com/http://testhttps://www.example.com/php://test 调用 api 时,我们会得到 IOException 而不是 404 响应。

它看起来像是在寻找我们托管 API 的特定文件夹。

HostConfig 中是否有任何标志可用于禁用此验证?

错误:

https://www.example.com/http://test:IOException: The filename, directory name, or volume label syntax is incorrect. : 'location\http:' https://www.example.com/php://test : IOException: The filename, directory name, or volume label syntax is incorrect. : 'location\php:'

【问题讨论】:

【参考方案1】:

这应该从this commit 解决,其中ServiceStack 将不再尝试访问包含非法字符的路径的文件系统。

从 v5.12.1+ 开始提供此修复程序,现在是 available on MyGet

【讨论】:

感谢@mythz 的快速更新。由于不允许使用私有 nuget 提要,因此知道何时将其推送或发布到公共 nuget? @NithinKumarNarayanaSwamy 我们刚刚发布了一个主要版本,所以下一个版本暂时不会发布。至少在 .NET 6 LTS 发布之前。 MyGet 不是私有的,它是一个公共 NuGet 源,供客户在主要版本之间访问我们的预发布包。另一种方法是从 GitHub 本地构建并使用本地构建。

以上是关于服务堆栈返回 IOException:文件名、目录名或卷标语法不正确的主要内容,如果未能解决你的问题,请参考以下文章

使用堆栈在Java中制作文件/目录树

收到错误 java.io.IOException:服务器返回 HTTP 响应代码:401

无法创建目录错误

Java Http(s)URLConnection java.io.IOException:服务器返回 HTTP 响应代码:403

不可捕获的 IOException

java.io.IOException:服务器返回 HTTP 响应代码:URL 的 403 [重复]