无法将Webhook发布到Azure上的C#应用​​程序

时间:2019-06-14 02:21:42

标签: c# azure woocommerce

我正在为WordPress WooCommerce商店开发电子邮件程序。我已经在WooCommerce设置中添加了一个Webhook,以便点击我创建的C#WebAPI应用程序。每当尝试创建订单时,我都试图运行一个电子邮件流程。

我创建了一个API控制器,用于接收从WooCommerce发送来的JSON数据,并且在通过邮递员请求在本地对其进行测试时,该控制器没有问题。

我试图在Azure上发布应用程序,当我这样做时,我从WooCommerce设置以及任何邮递员请求中都收到了400错误。

我尝试设置

<system.webServer>
  <httpErrors existingResponse="PassThrough"/>
</system.webServer>

在web.config文件中,该文件随后从Postman返回502错误,但在WooCommerce Webhook端仍然是相同的错误。

我还尝试了重新部署,但同样没有效果。

我可以在标准MVC主页/菜单视图中查看主页以及API控制器链接。

该控制器是从APIController类继承的标准API控制器:

public class OrdersController : ApiController

,它包含一个方法ProcessOrders,上面有一个[HttpGet, HttpPost]属性,以及一个路由/api/orders/callback

控制器负责将Webhook中的有效负载插入数据库中,然后使用其他一些类通过电子邮件发送有关产品的某些特定信息。

是否需要在Azure门户或web.config文件中进行某种设置?我对Azure的经验不是很丰富,因此如果需要执行其他任何操作,我不太熟悉。

天蓝色信息

我正在从Visual Studio内的快速发布中部署到蔚蓝

  • 即用即付资源组
  • .Net Framework version 4.7
  • 启用了远程调试
  • Web App应用服务
  • 唯一的应用程序服务设置是WEBSITE_NODE_DEFAULT_VERSION设置为6.9.1

我已经尝试了Release和Debug配置,尝试在配置中使用Validate Connection选项时连接有效,File Publish Options均未选中(删除目标位置的其他文件,在发布过程中进行预编译,从app_data文件夹中排除文件)和可以正常发布,并且可以访问该应用程序(除了api控制器之外)。

该项目使用Web API构建为.Net框架version 4.6.1

在此先感谢您的帮助!

编辑

我已经删除了API所使用的原始方法中一部分的参数,现在出现了No HTTP resource was found that matches the request URI错误。我尝试更改Route数据批注以及仅使其变为HttpGet来查看它是否可访问,并且不起作用。我在控制器上创建了第二个操作,只是为了测试返回的字符串,并且该操作没有问题,因此我不确定为什么无法访问它。该方法的简介如下:

[HttpGet]
[Route("api/orders/callback")]
public string Callback() { return "Test"; }

我还更新了此方法,尝试仅返回一个简单的字符串,但它不起作用。我还调整了第二个测试方法,以接受一个已过帐的字符串,该字符串将返回The requested resource does not support http method 'POST'

此方法如下所示:

[HttpPost]
[Route("api/orders/new")]
public string SecondCallback(string payload) {
  return payload;
}

0 个答案:

没有答案