【问题标题】:Should + (plus) sign work for Routes in Azure Functions 2在 Azure Functions 2 中,+(加)号是否适用于路由
【发布时间】:2019-04-19 02:34:07
【问题描述】:

我们已将应用迁移到 Azure Functions 2,并且我们有以下路由设置:

"testABC/{testA}/{testB}"

在我们拥有的天蓝色函数代码中:

public static HttpResponseMessage Run(HttpRequestMessage req, string testA, string testB, TraceWriter log)
{
  var res = req.CreateResponse(HttpStatusCode.OK);
  res.Content = new StringContent($"{testA} - {testB}");
  return res;
}

当我运行这个网址时:https://xxx.azurewebsites.net/testABC/74aff65f-5f46-4e28-838b-3093d18a3552/test 它有效

但是,如果我添加一个加号,它就不起作用:当我运行这个 url 时:https://xxx.azurewebsites.net/testABC/74aff65f-5f46-4e28-838b-3093d18a3552/te+st 它给出了这个错误:

您要查找的资源已被删除、名称已更改或暂时不可用。

添加空格而不是加号也可以。这不是 Azure Functions 1 的问题。我在这里缺少什么?

【问题讨论】:

  • “路由设置”是指您使用的是 Azure 函数代理吗?还有路由模板,虽然你的网址看起来更像“.net/api/testABC”docs.microsoft.com/en-us/azure/azure-functions/…
  • 嗨玛丽,我没有使用任何代理 - 只是标准的路由模板。它工作正常 - 除非值中有 +

标签: azure azure-functions


【解决方案1】:

更新

原来是 allowDoubleEscaping="true" missing 在 v2 中。它应该从运行时 2.0.12265 开始修复,现在我看到 2.0.12275 在我身边。


我遇到了同样的错误,但一切都在本地运行,所以我怀疑 Azure 上可能存在一些限制加号的服务器请求过滤器设置。已打开an issue 跟踪此问题。

【讨论】:

  • 谢谢杰瑞——这将是我的下一步;但我只是认为这不可能被忽视并且我做错了什么。
  • @tank104 我们可能已经竭尽全力了。如问题中所述,我可以在 Azure 站点上 v1 的 url 中使用 +,正如您所发现的,v1 和 v2 也可以在本地工作。不一致应该证明我们没有做错什么。可能有一些设置需要检查,但我在 Azure Functions 文档中没有找到任何线索。所以我认为是时候进行下一步了。
猜你喜欢
  • 2018-03-26
  • 2022-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-28
  • 2017-01-25
  • 1970-01-01
  • 2022-10-07
相关资源
最近更新 更多