2011-12-14 15 views
5

Azure Web rolü (MVC 3 projesi) eklendikten sonra başlayan değilMicrosoft Azure MVC 3 Web rolü alışkanlık' Twilio denetleyici sınıfı ile başlamak TwilioController temel sınıf mirası

  • MS Azure üzerinde barındırılan bir MVC 3 uygulamaya sahip . Azure Web rolüne yayın yapıyor - Sorun yok.
  • Nuget Twilio ve Twilio.Mvc paketlerini ekledim. Hala Azure Web rolüne yayınlandı - Sorun yok.
  • Mvc.TwilioController temel sınıfından miras alan bir sınıf ekledim ve daha sonra Azure web rolü artık başlatılmıyor.
  • TwilioController sınıfı mirasını kaldırırsam, web rolü başlar.

Projeler, yerel VS Azure öykünme ortamımdaki işlevleri yayınlar, çalıştırır ve çalıştırır.

Proje Referansları; Twilio.api, Twilio.mvc, Twilio.Twiml, RestSharp ve NewtonSoft.Json'un tümü CopyLocal = True olarak ayarlanmıştır.

Tüm Azure Teşhis günlüğü/izlemenin etkin ve masa depolama her 5 saniyede gönderme ancak web rolü başlatmak için başarısız olduğunda hiçbir günlük veri yok edilir. Not: TwilioController'ı açıklarsam, Azure Diag'lar doğru şekilde yapılandırıldığından çok sayıda günlük verisi alırım. Web rolü/iptal döngüsü/iptal etmeye devam ettiği

, daha fazla sorun giderme için vm için RDP için hiçbir fırsat var.


aşağıdaki iki hatalar her dakika hakkında başarısız web Rolün Windows Sistem olay günlüğüne yazılır:

The application '/' belonging to site '1273337584' has an invalid AppPoolId 'ca5c9ecb-e68d-4f3a-84c2-c0b4430373e9' set. Therefore, the application will be ignored.

.

Site 1273337584 was disabled because the root application defined for the site is invalid. See the previous event log message for information about why the root application is invalid.


Adımlar (kesin adımlar) çoğaltmak:

  1. Install Azure Sdk v 1.6
  2. Azure şablonu kullanarak yeni bir proje oluşturun (görsel stüdyo 10 sp1)
  3. Asp.net seç MVC 3 Web Rolü
  4. Yap ve Azure'a Yayınla
  5. Başarı - Web Rolü başlar - Web Rolü 3.3.2
  6. Azure'de için
  7. Başarı Nuget Paketi "Twilio.Mvc" sürüm 3.1.3
  8. Oluştur ekleme ve yayınlama sürümü
  9. Nuget Paketi "Twilio" Add başlar
  10. Boş bir denetleyici (HelloController) oluşturun. Aşağıdaki kod snippet'ine bakın.
  11. TwilioController temel sınıfını (örn Kamu Sınıf HelloController: TwilioController) ekleyin
  12. Oluştur ve Azure
  13. Başarısız Yayınla - web rolünü sadece cyles/düşükle sonlanması/cyles.
  14. TwilioController (ör.Kamu Sınıf HelloController //: TwilioController)
  15. Buld ve Azure
  16. Başarı Yayınla - web rolü takdir

    using System.Web.Mvc; 
    using Twilio.TwiML.Mvc; 
        namespace WindowsAzureProject857481.Controllers 
        { 
         public class HelloController : TwilioController 
         { 
          // 
          // GET: /Hello/ 
    
          public ActionResult Index() 
          { 
           return View(); 
          } 
    

Herhangi fikirleri başlar.

sayesinde Jim

+0

Web rolünde RDP etkin mü? Giriş yapabilir ve günlükleri kontrol edebilir misiniz? http://msdn.microsoft.com/en-us/library/gg443832.aspx –

+0

RDP'yi etkinleştirdim ancak bağlantı kurulamadı (Web rolü devredeyken Azure Yönetim Konsolu'ndaki "Uzak" düğmesi hiçbir zaman etkin değil. – JimSTAT

+0

Özel durumlar yakalamak için ELMAH gibi bir şey eklerseniz bir şey günlüğe kaydedilir mi? –

cevap

4

Jim:

Ben Twilio için çalışmak ve the .NET helper library kendi. Yenilikler oluyor

o onun karşısında inşa ne yana Twilio.Mvc montaj, 2.0 sürümü System.Web.Mvc montaj arayan olmasıdır. Bu, MVC 3 projenizle paketlenmediği için onu bulamıyor.

Düzeltme oldukça kolay. Twilio.Mvc kaynağını alın, referansı MVC'nin daha yeni sürümüne değiştirin ve derlemeyi yeniden derleyin. Destek ekibimizin, kendiniz yapmak istemiyorsanız, sizin için oluşturduğum bir sürümle sizinle iletişim kuracağına inanıyorum.

Sanırım bunu denemek isterseniz, muhtemelen sorunu gidermek için derleme ciltleme yönlendirme kullanmanın bir yolu da vardır.

Devin

+0

Sorunu çözdünüz! Ben Nuget Twilio.Mvc sürüm 3.1.3 çekti ve System.Web.Mvc 3.x ve problem çözüldü bana verdi bana Twilio.Mvc bir referans ekledi. Umarım Twilio MVC 3 için bir Nuget Twilio.Mvc paketi yaratacaktır. Ben bir Twilio/MVC 3/Azure projesi oluşturma adımları ile cevabı düzenledim. – JimSTAT

2

VS2010 Ulitimate içinde IntelliTrace kullanmayı deneyin. Bu tür bağımlılık sorunlarını yakalayabilir, Intellitrace dosyalarını indirmenize ve uygun istisnaları bulmanıza izin verir.

3

Tek bir şey değiştirdiğim için yineleme adımlarınızdan geçtim - Twilio + deps paketlerini eklemeden ve TwilioController'dan bir denetleyici genişletmeden önce WebDeploy'u rol için erkenden etkinleştirdim. Bu şekilde, VM zaten oluşturuldu ve rol zaten başladı.

  1. web dağıtmaya sağlayan Azure için yeni MVC3 rol yayınla -

ilk kez - hala

  • TwilioController ve web dağıtmak gelen uzatın işleri -
  • Twilio Nuget paketleri ve web dağıtmaya ekle işleri Adım 3 yaptım, web dağıtımı bir hataya neden oldu:

    COM object has been separated from its underlying RCW cannot be used 
    

    Şimdi emin olmak için tekrar deniyorum Son adım WebDeploy ile tekrarlanabilir. Tüm Twilio'yu kaldırdık ve webdeploy'u sıfırlamak için tekrar yayın yapıyorum. Yaklaşık 30 dakika içinde cevap güncellenir.

    Güncelleme

    Tamam, bu garip. Yukarıdaki hatayı yeniden üretebildim. Ancak, Visual Studio'yu kapattım, yeniden başlattım ve ardından web dağıtımı yapabildim. I now have a controller in an MVC3 web role on Azure that extends TwilioController. < - bunun geçici olduğunu ve kaldırılacağını unutmayın.

    Ben yukarıdaki adımları deneyin ve hatta WebDeploy kullanmadan Repro denemenizi öneririz. Ancak, TwilioController'ı genişleten bir denetleyiciyle konuşlandırmadan önce, Visual Studio'yu kapatın ve yeniden başlatın.

    hala çalışmıyorsa

    , şunu deneyin:

    1. sağ tıklayın Azure projesi ve Paketi seçin.
    2. Portal'a gidin ve Yeni Hazırlama Dağıtımı'nı tıklatın.
    3. cscfg ve cspkg dosyalarına el ile gidin ve yükleyin.

    Final Cevap Yukarıdaki adımları çalıştı. Web dağıtımı devre dışı bırakıldığında, paketin Visual Studio'dan mı yoksa portaldan mı manuel olarak yayınlanacağı önemli değil. Her ikisi de iptal edilmeye ve tekrar denemeye devam ediyor. TwilioController'ı konuşlandırmanın tek yolu WebDeploy'ı kullanmaktı, ama elbette bu kabul edilemez.

    Microsoft ile bir destek isteğinde bulunmanızı öneririz. Bahsettiğiniz gibi bir bağımlılık gibi görünmüyor, çünkü web dağıtımı üzerinden Twilio cihazında gizlice dolaşarak bir kod çalıştırabiliyordum. Yukarıda belirtilen COM nesnesi hatasıyla ilgili bir şey olabilir.

    P.S. - 8 saatlik küçük bir hesaplama örneği için 96 sent borçlusun.

  • +0

    Adımlarınızı takip ettim ve aynı sonuçları elde ettim - (TwilioControler, gerekten sonra web dağıtımı yoluyla eklenebilir). Bu ilerleme -Teşekkürler. Hata senaryosunda fark ettiğim bir şey, Windows Sistem Günlüğünde birden çok WAS hatasıdır. Sorudaki hataları yayınlayacağım. Artık web rolünüzü silebilirsiniz :) – JimSTAT

    +0

    Yukarıda kullanılan örnek URL silinmiştir. İyi şanslar. – danludwig

    +0

    Çözüm için teşekkürler. Webdeploy ile keşfettiğim gibi Azure'da yayınlarsam gerçeği düzeltebilirim ve üretimde takas ettiğimde web dağıtımı hizmetini/portunu kapatırım. Bu da şimdi seçeneklerim olduğu anlamına gelir (teşekkürler, çok lütuflu sizindir).MS veya Twilio temel sorunu çözene ve başka kimse yapmazsa bir anwser sağlayacağına kadar soruyu açık bırakacağım. – JimSTAT

    2

    Bu sorunun, TwilioController'ın Azure üzerinde çalışmasını sağlamakla ilgili olduğunu anlıyorum, ancak bu seçeneğin farkında olmasaydınız, projenizi AppHarbor numaralı telefondan çalıştırmanızı önermek istedim. Appilgar'da Twilio'yu başarıyla kullanan birçok uygulama biliyorum (örneğin, this post'a bakın).

    (feragat AppHarbor, ben değilim kurucularından)

    +2

    Bunu çözemezsek, bunu ciddi olarak düşüneceğim. – JimSTAT

    İlgili konular