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 连接到虚拟机进行进一步故障排除。
大约每分钟都会将以下两个错误写入失败的 Web 角色的 Windows 系统事件日志:
属于站点“1273337584”的应用程序“/”设置了无效的 AppPoolId“ca5c9ecb-e68d-4f3a-84c2-c0b4430373e9”。因此,该申请将被忽略。
.
站点 1273337584 已被禁用,因为为该站点定义的根应用程序无效。有关根应用程序无效原因的信息,请参阅前面的事件日志消息。
重现步骤(确切步骤):
- 安装Azure SDK v 1.6 http://www.windowsazure.com/en-us/develop/net/
- 使用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)。请参阅下面的代码片段。
- 添加 TwilioController 基类(例如 Public Class HelloController : TwilioController)
- 构建并发布到 Azure
- 失败 - Web 角色只是循环/中止/循环。
- 注释掉 TwilioController(例如 Public Class HelloController // :TwilioController)
- 构建并发布到 Azure
-
成功 - Web 角色启动
using System.Web.Mvc;
using Twilio.TwiML.Mvc;
namespace WindowsAzureProject857481.Controllers
{
public class HelloController : TwilioController
{
//
// GET: /Hello/
public ActionResult Index()
{
return View();
}
任何想法表示赞赏。
谢谢,
吉姆
Jim:
我为 Twilio 工作,并拥有.
发生的情况是,Twilio.Mvc 程序集正在寻找 2.0 版本的 System.Web.Mvc 程序集,因为这是它构建的目标。它没有找到它,因为它显然没有与您的 MVC 3 项目打包在一起。
修复相当简单。获取 Twilio.Mvc 源,将引用更改为较新版本的 MVC 并重新编译程序集。我相信,如果您不想自己动手,我们的支持团队会与您联系并提供我为您构建的版本。
我认为如果您想尝试的话,可能还有一种方法可以使用程序集绑定重定向来解决问题。
Devin
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)