新发布的ASP.NET WebHooks和Signal-R有什么区别?有什么优点或缺点?每种技术的用例有哪些?
我正在尝试为ASP.NET C#中的WordPress WooCommerce创建一个WebHooks WebHookHandler.
我首先创建了一个ASP.NET C#Azure API App WebApplication Project并添加了相关的引用(Microsoft.AspNet.WebHooks.Common,Microsoft.AspNet.WebHooks.Receivers,Microsoft.AspNet.WebHooks.Receivers.WordPress).添加了WebHookConfig,WordPressWebHookHandler并在GlobalAsax中注册了WebHookConfig.
然后,我将该应用程序发布为Azure App Service.
我的WordPressWebHookHandler仍然是示例的默认值,如下所示:
public class WordPressWebHookHandler : WebHookHandler
{
public override Task ExecuteAsync(string receiver, WebHookHandlerContext context)
{
// make sure we're only processing the intended type of hook
if("WordPress".Equals(receiver, System.StringComparison.CurrentCultureIgnoreCase))
{
// todo: replace this placeholder functionality with your own code
string action = context.Actions.First();
JObject incoming = context.GetDataOrDefault<JObject>();
}
return Task.FromResult(true);
}
}
Run Code Online (Sandbox Code Playgroud)
在WooCommerce中测试用户创建WebHook时,我可以在日志中看到请求,如下所示.
但不幸的是,它在调试时从未收到,我看到下面的错误.
我想也许我需要一个自定义WebHook而不是WordPress特定的一个,因为这是一个WooCommerce Webhook.或者可能在路由中处理错误并最终在另一个控制器中.
任何帮助深表感谢.
我不知道如何在 .Net Core 2.* 中使用自定义发件人、自定义处理程序和持久性 sub-pub 存储来创建 WebHook。
我已经阅读了许多解释 Webhooks 的文章和示例,但所有这些文章都使用 .NetFramework 而不是新的 .Net Core。
我发现这些文章特别有用:
https://devblogs.microsoft.com/aspnet/sending-webhooks-with-asp-net-webhooks-preview/
https://github.com/aspnet/AspNetWebHooks/tree/master/samples/
https://www.hanselman.com/blog/IntroducingASPNETWebHooksReceiversWebHooksMadeEasy.aspx
这是我当前用于 WebHook Sender 的一些代码:
启动文件
public void Configure(IApplicationBuilder app, HttpConfiguration config, IHostingEnvironment env)
{
config.InitializeCustomWebHooks();
config.InitializeCustomWebHooksApis();
}
Run Code Online (Sandbox Code Playgroud)
NotifyApiController.cs(WebHook 发送方)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Web.Http;
using Aeron.WebApi.Models.WebHookDtos;
using Aeron.WebApi.WebHookProviders;
using HttpPostAttribute = Microsoft.AspNetCore.Mvc.HttpPostAttribute;
[Authorize]
public class NotifyApiController : ApiController
{
private static readonly List<MessageDto> Messages = new List<MessageDto>();
public List<MessageDto> Get()
{
return Messages;
}
public async …Run Code Online (Sandbox Code Playgroud) 我正在尝试WebHookHandler为.Net Core项目设置接收Json数据.我知道这些Webhook作品是如何理论化的.
有大量可用于接收WebHooks的信息,但是示例源代码.但我需要一个例子.Net Core吗?
asp.net webhooks asp.net-web-api asp.net-core asp.net-webhooks
我正在尝试使用Azure功能开发以下场景.
我开发了Asp.Net Web API来处理数据库相关的操作.现在,我想实现一个类似于日常运行的调度程序,它将清理数据库中的垃圾数据.我已经在我的Web API中创建了一个端点,但我想定期执行它,所以我想用Azure函数的TimerTrigger函数实现调度程序,有没有办法在TimerTrigger函数中调用我的web api的端点.
如何在Azure功能中处理我的api身份验证?
谢谢
更新:
基于mikhail的回答,最后我使用以下代码获得了令牌:
var client = new HttpClient();
client.BaseAddress = new Uri(apirooturl);
var grant_type = "password";
var username = "username";
var password = "password";
var formContent = new FormUrlEncodedContent(new[]
{
new KeyValuePair<string, string>("grant_type", grant_type),
new KeyValuePair<string, string>("username", username),
new KeyValuePair<string, string>("password", password)
});
var token = client.PostAsync("token", formContent).Result.Content.ReadAsAsync<AuthenticationToken>().Result;
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(token.token_type, token.access_token);
var response = await client.GetAsync(apiendpoint);
var content = await response.Content.ReadAsStringAsync();
Run Code Online (Sandbox Code Playgroud) 我正在使用Azure WebJob.我首先在Visual Studio中创建一个控制台应用程序,然后在VisualStudio中将该应用程序作为webJob发布在portal.azure中.
该WebJob与触发Manualy从其网络挂接username和password https://{MyWebAPP}.scm.azurewebsites.net/api/triggeredwebjobs/{MyWebJob}/run?arguments=1 2 3从第二程序.
这个WebJob非常简单.它只显示参数1,2和3.
当我从CommandeLine运行程序时,dotnet MyProject.dll
1 2 3它运行良好.但是当我从webHook运行它时,它不会读取参数.
这是我的主要脚本:
class Program
{
static void Main(string[] args)
{
Console.WriteLine("PARAMS Passed : " + string.Join(",", args));
}
}
Run Code Online (Sandbox Code Playgroud)
当我从WebHook by Post请求运行时,这是WebJob中的日志: [06/09/2018 15:19:37 > 33a9f2: INFO] PARAMS Passed :
当我从commande Line运行时,这是控制台: [06/09/2018 15:19:37 > 33a9f2: INFO] PARAMS Passed : 1,2,3
可以帮助一些人.Tha,ks From All.
我们有一个接受 Stripe 付款的网页,一旦付款完成,Stripe 就可以调用我们服务器上的 webhook。
此时,我们可以将订单标记为完成并完成任何其他附加任务。
我们如何让订单网页更新/将用户移至订单完成?
我们是否应该持续访问 AJAX 中的服务器来检查它是否已完成,或者是否有更好的方法来执行此操作。
asp.net-mvc webhooks asp.net-mvc-4 stripe-payments asp.net-webhooks
我需要“ WinForm”应用程序来进行通信。
“ Webhook”计划从viber接收数据(事件),然后该数据将在应用程序“ WinForm”中使用。
我做了:
http://localhost:44836/Hook; 如果我正确理解了该理论,则在执行之后"Postman" action. I click "SEND",该ViberProcess (HttpContext context)方法应在HookController.cs控制器中执行,并且代码应在处停止breakpoint。
这没有发生。
文档Viber REST API- 链接
题。
如何制作Webhook?
码 HookController.cs
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;
//
using System.Runtime.Remoting.Contexts;
namespace WebAppl1.Controllers
{
public class HookController : Controller
{
// GET: …Run Code Online (Sandbox Code Playgroud) asp.net ×4
c# ×4
webhooks ×3
asp.net-core ×2
azure ×2
asp.net-mvc ×1
php ×1
signalr ×1
wordpress ×1