我正在为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内的快速发布中部署到蔚蓝
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;
}