SORU
20 EKİM 2011, PERŞEMBE


Çok tip kumanda 'Ev adlı uyan' bulundu;

Ben şu anda iki alakasız MVC3 projeleri online ev sahipliği yaptı.

Biri çalışıyor, diğeri, bana hata vererek çalışmıyor:

Çok tip denetleyici adında eşleşen bulundu 'Ev'. Bu bu istek hizmetleri rotayı oluşabilir ('{denetleyicisi} {action}//{id}') aramak için bir ad belirtin istekle eşleşen bir denetleyici için.

Eğer durum buysa, 'MapRoute' yöntemi aşırı çağırarak bu rota kayıt bir götüren 'ad' parametresi.

Benim hoster çalışır şekilde bana FTP erişim verir ve o klasör içinde iki klasör, benim uygulamalar her biri için bir tane var.

ftpFolderA2/foo.com

ftpFolderA2/bar.com

foo.com gayet iyi çalışıyor, ben yerel dosya sistemi başvurum sonra içeriğini yayınlama FTP ve çalışıyor.

Yüklediğim zaman ve bar.com ve benim sitesini kullanarak beni yangınları önler yukarıdaki sorun çalıştırmayı deneyin.Tüm bunları yaparken foo.com hala çalışıyor.

. Bar.com HomeController Bir başka bulgu bu yüzden ftpFolderA2 her YERDE içinde kontrol edilebilir. Nasıl olması gerektiği gibi sadece Kumanda klasörde aramak için söyleyebilir miyim?

Gerçekler:

  1. Alanlarını kullanarak değil. Bu TAMAMEN alakasız iki proje var. Her ilgili klasöre yayımlanan her proje değil bence. Hiçbir şey fantezi.
  2. Her proje sadece 1 HomeController.

Birisi bu sorunu olduğunu teyit edebilir?

CEVAP
20 EKİM 2011, PERŞEMBE


Bu hata iletisi genellikle alanlarda kullandığınızda olur ve alanı ve kök içinde aynı denetleyicisi adı var. Örneğin, iki vardır:

  • ~/Controllers/HomeController.cs
  • ~/Areas/Admin/Controllers/HomeController.cs

Bu sorun, hata mesajı da anlaşılacağı gibi) gidermek için yollar bildirirken ad kullanabilirsiniz. Global.asax ana rota tanımı:

routes.MapRoute(
    "Default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = UrlParameter.Optional },
    new[] { "AppName.Controllers" }
);

ve ~/Areas/Admin/AdminAreaRegistration.cs:

context.MapRoute(
    "Admin_default",
    "Admin/{controller}/{action}/{id}",
    new { action = "Index", id = UrlParameter.Optional },
    new[] { "AppName.Areas.Admin.Controllers" }
);

Eğer alanları kullanıyorsanız eğer her iki uygulama aynı ASP.NET uygulama içinde barındırılan ve çatışmalar aynı denetleyicileri farklı ad tanımladığınız oluşur gibi görünüyor. Eğer çatışmalar bu tür önlemek istiyorsanız IIS bu ikisi çok ayrı ASP.NET ana bilgisayar uygulamaları için yapılandırmak zorunda kalacaksınız. Eğer sunucuya erişim yok, eğer doğru değilse bunun için hosting sağlayıcınızla görüşün.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CNNMoney

    CNNMoney

    16 Kasım 2006
  • Kupa World

    Kupa World

    1 EYLÜL 2011
  • Phymec

    Phymec

    18 Temmuz 2009