У меня есть простой домашний и игровой контроллер, настроенный так:
public class HomeController : BaseController
{
public ActionResult Index()
{
return View();
}
}
public class GameController : BaseController
{
[HttpPost]
public ActionResult New(int level = 1)
{
...
}
public ActionResult FlipCard(int row, int column,Guid nonce)
{
...
}
[OutputCache(Duration=Constants.CACHE_IMAGE_EXPIRATION_SECONDS)]
public FileResult Image (Guid imageId)
{
...
}
public ActionResult Finish()
{
...
}
}
У меня настроена маршрутизация как таковая в Global.asax.cs:
public class MvcApplication : System.Web.HttpApplication
{
...
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
}
Когда язапустить сайт с помощью IIS Express;Я могу получить доступ к http://localhost/ очень хорошо и увидеть HTML в моем домашнем / индексном представлении;а также использовать действия на игровом контроллере.
Когда я запускаю сайт из виртуального каталога в IIS локально;Я могу видеть то же представление в http://localhost/site/; и могу также использовать действия игрового контроллера.
Однако, когда я развертываюсь на нашем сервере разработки в виртуальном каталоге, настроенном как приложение .Net 4и загрузите http://dev/site/; Я не вижу домашний / индексный вид.Вместо этого я просто получаю список каталогов всех файлов в корневом подкаталоге сайта.Действия игрового контроллера также недоступны.В результате обращения к любому из URL-адресов сайта появляется 404.
Google решил эту проблему;нашел несколько решений и перепробовал их все;похоже, ни один из них не работает.
Некоторые примечания
У меня есть сборки MVC3, развернутые в локальной папке bin
Пул приложений для сайта на всех серверах .Net 4.0.
- Я создал тестовую веб-форму, которая отображает корневой каталог приложения (Server.MapPath ("~")), чтобы подтвердить, что виртуальныйкаталог был настроен как веб-приложение.Я развернул его на http://*/site/test.aspx, результаты были, как и ожидалось:
- Local: c: \ inetpub \ wwwroot \ site
- Dev: e: \ inetpub \ wwwroot \ site
Я в тупике, в чем проблема.Есть идеи?Любой конструктивный вклад приветствуется.
Спасибо, Фрэнк