【发布时间】:2016-09-20 13:21:33
【问题描述】:
我们正在尝试从托管在 Azure Web 应用程序上的 ASP.NET 网站公开遵循 ARK 标准(存档资源密钥)的 URL。但似乎 Azure Web 应用程序不支持 URL 路径段中的冒号 (:),因为我们收到 HTTP 500 错误代码,其中包含消息“无法显示页面,因为发生了内部服务器错误。”尝试键入http://example.azurewebsites.net/ark:/123/456 之类的 URL 时。
请注意,我们确实更新了 web.config 的 RequestPathInvalidCharacters 设置以允许在 URI 中使用冒号,并且它可以在本地工作。此外,URI 中的冒号可能不是很频繁,但 valid,甚至 wikipedia 也使用它们。
编辑:
经过几次测试,问题似乎只发生在冒号位于路径段末尾时(例如:http://example.azurewebsites.net/ark:/123/456)。否则,将应用 requestPathInvalidCharacters 设置。我们运气不好:ARK 标准规定冒号应放在路径段的末尾。
请注意,这种情况下显示的错误与requestPathInvalidCharacters 具有其默认值并且冒号放置在路径段中间时的错误不同。甚至在请求进入 IIS 管道之前(可能在 Azure 级别),这里的错误似乎就已经发生了。您可以测试上面的 URL 以快速显示问题。
【问题讨论】:
标签: azure url azure-web-app-service