Настройка IIS 6.0 для запуска приложения MVC3
Мне кажется, у меня проблема с конфигурацией на моем сервере IIS 6, и я хотел бы посмотреть, пропустил ли я что-нибудь.
Проблема, с которой я сталкиваюсь, заключается в том, что в любое время , когда выполняется RedirectToAction ("Index", "Home") (например, в методе, который возвращает ActionResult), я ожидаю, чтоМне будет возвращено:
http://servername.domain.com/virtualdirectoryname
Однако вместо этого я получаю перенаправление на:
http://servername.domain.com/virtualdirectoryname/virtualdirectoryname
Это второй экземпляр virtualdirectoryname, добавляемый в конец URL-адреса и может 'не могу понять, почему - этот URL, конечно, приведет к ошибке 404 ресурс не найден.Я написал и развернул несколько приложений MVC3 как в корпоративной интрасети, так и в общедоступных интернет-средах и не могу понять, что я сделал неправильно.Мой global.asax.cs выглядит нормально -
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
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_AuthenticateRequest(Object sender, EventArgs e)
{
if (HttpContext.Current.User != null)
{
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
if (HttpContext.Current.User.Identity is FormsIdentity)
{
FormsIdentity id = (FormsIdentity)HttpContext.Current.User.Identity;
FormsAuthenticationTicket ticket = id.Ticket;
// Get the stored user-data, in this case, our roles
string userData = ticket.UserData;
string[] roles = userData.Split(',');
HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(id, roles);
}
}
}
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
}
Application_AuthenticateRequest обрабатывает сохранение ролей для вошедших в систему пользователей, но в остальном это выглядит довольно ванильно.Я могу думать только о том, что я как-то испортил виртуальный каталог.
Перед выполнением любого из этих шагов я проверил, что на сервере установлены MVC3 и v4.0 .NET Framework.Есть также другие приложения ASP.NET 4.0 на этом сервере, которые работали без инцидентов.Существует также приложение MVC2 (также установлено MVC2), работающее на этом сервере и работающее без инцидентов.
- Я создал виртуальный каталог на главном «сайте по умолчанию» с помощью диспетчера IIS.
- Установите соответствующие разрешения для папки, на которую указывает этот виртуальный каталог.Протестировано с быстрым файлом "Hello, World" index.html.
- Скопировал приложение с моего компьютера разработки, на котором приложение работает, как разработано, в папку, описанную в # 2.
- Обновлен файл Web.Config, в котором редактируются строки подключения, указывающие на тестовый сервер базы данных;Я также проверил эти строки подключения на своем ПК для разработки.
- Откройте веб-браузер и надейтесь на лучшее.
Любая помощь очень ценится.
Спасибо!