【发布时间】:2016-03-11 05:39:26
【问题描述】:
Azure Web 角色(MVC 3 项目)不会从 Twilio 控制器类开始
- 我有一个托管在 MS Azure 上的 MVC 3 应用程序。它发布到 Azure Web 角色 - 没问题。
- 我添加了 Nuget Twilio 和 Twilio.Mvc 包。它仍然发布到 Azure Web 角色 - 没问题。
- 我添加了一个继承自 Mvc.TwilioController 基类的类,随后 Azure Web 角色不再启动。
- 如果我删除 TwilioController 类继承,Web 角色就会启动。
项目在我的本地 VS Azure 模拟器环境中可以正常发布、运行和 twilio 功能。
项目参考; Twilio.api、Twilio.mvc、Twilio.Twiml、RestSharp 和 NewtonSoft.Json 都设置为 CopyLocal=True。
所有 Azure 诊断日志记录/跟踪均已启用并每 5 秒发送到表存储,但当 Web 角色无法启动时,没有可用的日志数据。注意:如果我注释掉 twilioController,我会得到大量日志数据,因此 Azure Diags 配置正确。
由于 Web 角色继续中止/循环/中止,因此没有机会 RDP 到 vm 以进行进一步的故障排除。
大约每分钟将以下两个错误写入失败的 Web 角色的 Windows 系统事件日志:
属于站点“1273337584”的应用程序“/”设置了无效的 AppPoolId“ca5c9ecb-e68d-4f3a-84c2-c0b4430373e9”。因此,应用程序将被忽略。
.
站点 1273337584 已被禁用,因为为站点定义的根应用程序无效。有关根应用程序无效的原因的信息,请参阅前面的事件日志消息。
重现步骤(具体步骤):
- Install Azure Sdk v 1.6
- 使用 Azure 模板 (visual studio 10 sp1) 创建一个新项目
- 选择 Asp.net MVC 3 Web 角色
- 构建并发布到 Azure
- 成功 - Web 角色启动
- 添加 Nuget 包“Twilio”版本 3.3.2
- 添加 Nuget 包“Twilio.Mvc”版本 3.1.3
- 构建并发布到 Azure
- 成功 - Web 角色启动
- 创建一个空控制器 (HelloController)。见下面的代码 sn-p。
- 添加 TwilioController 基类(例如 Public Class HelloController : TwilioController)
- 构建并发布到 Azure
- 失败 - Web 角色只是 cyles/aborts/cyles。
- 注释掉 TwilioController(例如 Public Class HelloController // :TwilioController)
- 构建并发布到 Azure
-
成功 - 网络角色开始
using System.Web.Mvc; using Twilio.TwiML.Mvc; namespace WindowsAzureProject857481.Controllers { public class HelloController : TwilioController { // // GET: /Hello/ public ActionResult Index() { return View(); }
任何想法表示赞赏。
谢谢, 吉姆
【问题讨论】:
-
网络角色是否启用了 RDP?您可以登录并查看日志吗? msdn.microsoft.com/en-us/library/gg443832.aspx
-
我启用了 RDP,但无法连接(当 Web 角色循环时,Azure 管理控制台中的“远程”按钮永远不会激活。
-
如果您添加类似 ELMAH 的内容来捕获异常,是否会记录某些内容?
-
我每次都可以使用 vanilla Azure Mvc 3 项目模板重现这个(参见上面的步骤)。如果有人拥有 Azure 帐户,如果您按照步骤复制我添加到问题中的步骤,我会对您的结果感到好奇。
-
我怀疑 Azure 包缺少 twilio 依赖项,因为去年我遇到了与 Entity Framework 类似的问题,临时修复是在包中手动包含一个文件。但是,就像我在问题中提到的那样,所有 twilio、restsharp 和 newtonsof 引用都是 Copy Local = True。
标签: asp.net-mvc asp.net-mvc-3 azure twilio