0

我正在构建一个 asp.net c# 网站并使用 Twilio。我正在努力让它接听来电,但它不工作,每次我打电话给它说有一个应用程序错误。

这是我在 .aspx 文件中的内容:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="callTest.aspx.cs" Inherits="callTest" %><?xml version="1.0" encoding="UTF-8" ?>

这是我在 aspx.cs 文件中的内容:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Twilio;
using Twilio.TwiML;

public partial class callTest : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        var twiml = new Twilio.TwiML.TwilioResponse();
        twiml.Say("Hello Monkey!");

        Response.ContentType = "text/xml";
        Response.Write(twiml.ToString());
        Response.Close();
    }
}

如果我注释掉上面的 c# 代码并将以下内容放入 .aspx 文件中,它工作正常,你们知道我的 c# 代码做错了什么吗?

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="callTest.aspx.cs" Inherits="callTest" %><?xml version="1.0" encoding="UTF-8" ?>
<Response>
    <Say>If you are calling from a house phone, press one.</Say>
    <Gather/>
</Response>
4

2 回答 2

1

Twilio 报告应用程序错误的原因是您的页面没有返回 XML。而且,您的页面没有返回 XML 的原因很简单,因为 Response.Close() 调用。将 Response.Close() 调用替换为 Response.End();。Response.End() 将所有当前缓冲的输出发送到客户端,而 Response.Close() 关闭与客户端的套接字连接。

TL;博士; 替换 Response.Close();Response.End();

于 2014-01-06T21:44:50.017 回答
0

Twilio 布道者在这里。

尝试通过在浏览器中加载您设置为语音 URL 的 URL 来测试此网页。您能否成功地达到它并获得您所期望的 TwiML?

Twilio 基本上是在告诉您“嘿,我试图请求此 URL,但我和您之间的某些事情使该 URL 失败了”。

那东西可能是防火墙、代理服务器等。

希望有帮助。

于 2013-07-30T21:38:45.453 回答