Azure逻辑应用程序302错误MVC身份验证

时间:2019-03-19 19:46:52

标签: asp.net-mvc azure azure-logic-apps

我正在尝试创建我的第一个Azure逻辑应用程序,该应用程序每小时简单地向具有MVC ASP身份验证的网站发出http发布请求。设置http Logic App操作时,我使用“基本”选项输入用户详细信息。

运行时,Logic App不断失败,并返回302(重定向)错误;我猜这是因为http帖子被重定向到帐户登录页面。

我通过执行Logic App动作来运行测试,该动作无需用户授权即可在同一站点的url上运行http帖子。

我还了解到,我可以使用“运行后”规则将配置添加到Logic App动作中,但是由于某些原因,此选项已被我的动作禁用。

如果对此领域有任何了解的人可以提供一些可能的指导,我将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:1)

在我的情况下,问题陈述:调用返回CSV文档的API,以便可以将其存储在Azure blob存储中。

我创建了Logic App,并配置了HTTP请求,以传递URL和使用API​​所需的所有参数,如下所示:

enter image description here

如您所见,使用HTTP连接器的配置非常简单。但是,当执行时,我收到了以下Logic Apps理解为错误的HTTP 302状态代码:

enter image description here

看看有关302(https://en.wikipedia.org/wiki/HTTP_302)的文档,我意识到Logic App应该收到一个Location标头,该标头指示我所需的资源在哪里,并且如上图所示,该信息正在返回。

但是,由于Logic App将HTTP 302响应理解为错误,因此我必须将Run After配置为处理成功响应和错误响应。

enter image description here

完成此操作后,我可以使用这次从第一次调用返回的Location标头进行第二次调用。

enter image description here

这次,重定向URL Logic App能够检索到所需的CSV文件,然后我可以完成其余的集成逻辑并将该文件发送到Blob存储。

enter image description here

克服Logic App将HTTP 302视为错误的解决方案。也许Logic Apps的一项改进是可以更好地了解并非所有HTTP状态代码都为错误,因此我们可以对Run After进行更好的配置,而不是将其他这些HTTP响应捕获为错误。

希望有帮助。