asp.net - 将 ASP.NET Web API 与 Twilio 一起使用,而不是 ASP.NET MVC 控制器
问题描述
我得到了 Twilio ASP.NET 示例,用于 Twilio 接听电话。我正在尝试使用 ASP.NET Web API 而不是示例中使用的 ASP.NET MVC Controller 类来开发控制台应用程序。我们不想在 ISS 服务器上托管 ASP.NET MVC 应用程序,并且希望控制台应用程序在“本地”运行。
作为 ASP.NET 和 web api 的新手,我使用在线示例使用 VB.NET 在 Main() 函数中设置网站:
Imports System.Web.Http.SelfHost
Imports System.Web.Http
Module Module1
Sub Main()
'Try config as localhost/ with port number
Dim config As New HttpSelfHostConfiguration("https://localhost:9032")
config.Routes.MapHttpRoute(
name:="DefaultApi",
routeTemplate:="api/{controller}/{id}",
defaults:=New With {.id = RouteParameter.Optional}
)
Using server As New HttpSelfHostServer(config)
Try
server.OpenAsync().Wait()
Console.WriteLine("Listening.")
Catch aggEx As AggregateException
Console.WriteLine("Error opening server.")
End Try
Console.WriteLine()
Console.WriteLine("Press enter to stop listening and exit.")
Console.ReadLine()
End Using
End Sub
端模块
根据在线示例,我创建了一个 Controller 文件夹,并使用以下代码创建了一个名为 VoiceControll.vb 的类文件:
Imports System.Threading
Imports System.Web.Mvc
Imports Twilio.AspNet.Mvc
Imports Twilio.TwiML
Namespace Controllers
Public Class VoiceController
Inherits TwilioController
'Inherits ApiController
'<HttpPost>
Function Index() As ActionResult
Dim response = New VoiceResponse()
response.Say("Hello. This is Twilio.")
Thread.Sleep(5000)
response.Play(digits:="1")
Thread.Sleep(5000)
response.Hangup()
Return TwiML(response)
End Function
End Class
结束命名空间
这基本上是示例中的代码。我不确定 Twilio post 函数(接收呼叫)使用什么函数名称,或者 ActionResult 是否适用于 ASP.NET Web api。
然后我以管理员模式启动控制台应用程序,没有错误。然后我运行 ngrok 命令 ngrok http -host-header="localhost:9032" 9032 并获取 Web url 以在 Twilio 控制台上更改我的 Twilio 电话号码的 http post url。
为了进行测试,我拨打 Twilio 号码并收到消息“发生应用程序错误。”。控制台上的 Twilio 调试显示 502 http 错误。
我的感觉是我的函数名称或控制器代码中的某些内容不正确。
我试过使用 Long Le 的 Twilio ASP.NET web api 示例。
就像我之前说的,我是 ASP.NET 的新手,我觉得我在代码中犯了一个愚蠢的错误。谢谢您的帮助。
解决方案
推荐阅读
- html - 加载后,所有扩展面板都处于打开状态,使用 Angular 材料
- sql - 根据大小写在 SQL Server 表行中显示自定义值
- python - 如何一起使用 sklearn 库和数据存储 memcache?
- c - C中的for循环条件
- database - 从 1NF 到 3NF 的归一化
- ios - 如何为图像 UIImagePicker Swift 4 添加属性
- java - 使用 RandomAccessFile 的最佳方式是 Java
- angular - 当与值进行比较时,如何触发 Angular 验证指令进行更新?
- alexa - 如何在 SSML 中用“Hm”构造一个句子
- postgresql - postgresql10 jdbc 并行查询