Я работаю над проектом MVC в Visual Studio 2010 с .NET Framework 4.0 + MVC2, и все работает, если я установил целевую платформу на .NET 4.0. Однако мой хост не предлагает .NET 4.0 для развертывания сайта, который мне нужен, чтобы он работал на .NET 3.5.
Я попытался преобразовать его в ASP.NET 3.5, и все работает нормально, но теперь, когда я пытаюсь загрузить домашнюю страницу, я получаю сообщение об ошибке 404:
The resource cannot be found.
Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.
Requested URL: /home
Version Information: Microsoft .NET Framework Version:2.0.50727.4927; ASP.NET
Version:2.0.50727.4927
Кто-нибудь знает, почему это так?
Спасибо за помощь. TheLorax
По моему опыту работы с ASP.NET MVC, Я видел это Default.aspx
страница необходима для правильной работы IIS. Я использую страницу, которая была включена в шаблон ASP.NET MVC 1. К сожалению, ASP.NET MVC 2 не включает эту страницу (насколько мне известно), поэтому вам следует добавить в свой проект следующее:
Default.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="YourNamespace._Default" %>
<%-- Please do not delete this file. It is used to ensure that ASP.NET MVC is activated by IIS when a user makes a "/" request to the server. --%>
Default.aspx.cs:
using System.Web;
using System.Web.Mvc;
using System.Web.UI;
namespace YourNamespace
{
public partial class _Default : Page
{
public void Page_Load(object sender, System.EventArgs e)
{
// Change the current path so that the Routing handler can correctly interpret
// the request, then restore the original path so that the OutputCache module
// can correctly process the response (if caching is enabled).
string originalPath = Request.Path;
HttpContext.Current.RewritePath(Request.ApplicationPath, false);
IHttpHandler httpHandler = new MvcHttpHandler();
httpHandler.ProcessRequest(HttpContext.Current);
HttpContext.Current.RewritePath(originalPath, false);
}
}
}
Возможно, сборки MVC не установлены на сервере, на котором вы публикуете. Попробуйте войти в свой проект MVC, затем в разделе «Ресурсы» и измените свойство copy local на true для всех сборок, специфичных для MVC (или просто выделите все под ссылками и установите для этого свойства значение true).
Простое решение: перейти на Visual Studio 2008 + SP1 + MVC 1. Это выпущенная / поддерживаемая комбинация. Если ваш хост не устанавливает сборки MVC, их можно развернуть бок о бок, вам нужно будет убедиться, что на вашем хосте установлен .NET 3.5. SP1.
Если я правильно помню, VS2010 B2 включает MVC *** 2 *** B2, но не MVC *** 1 ***.