2009-12-31 4 views
2

Je tente de déployer mon site Web ASP.NET MVC 2 de VS2010 beta 2 vers IIS7. La publication fonctionne très bien mais aucune des routes fonctionne, quand je vais à l'URL http://localhost/myapp/Home/Index je reçois l'erreur:Problème lors de l'exécution du site Web ASP.NET MVC 2 sur IIS7

HTTP Error 404.0 - Not Found The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

Je suis déployer dans un répertoire virtuel qui utilise un pool d'application configurée pour le .NET 4 cadre avec mode pipeline géré mis à intégré. Aussi, si je vais Basic Settings-> Test Connection, les deux tests passent. D'après ce que je comprends, ça devrait juste marcher?

Je n'ai aucun problème à déployer Nerd Dinner de VS2008, ça marche très bien.

+0

on dirait le même problème que je vais avoir ici http://stackoverflow.com/questions/2854808 – Guy

Répondre

0

Incluez-vous la bonne MVC dll dans votre publication?

Lorsque j'ai eu des problèmes de navigation dans mes applications MVC, c'est que je n'ai pas inclus la DLL MVC dans le dossier bin.

+0

Je viens de mettre CopyLocal à true sur System.Web.Mvc.dll et il a fait pas différence. V2 de la DLL MVC est dans le GAC de toute façon. – Charlie

0

D'après mon expérience avec ASP.NET MVC, J'ai vu qu'une page Default.aspx est nécessaire pour que IIS fonctionne correctement. J'utilise la page qui a été incluse dans le modèle ASP.NET MVC 1. Malheureusement, le ASP.NET MVC 2 ne comprend pas cette page (à ma connaissance), vous devez donc ajouter ce qui suit à votre projet:

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); 
     } 
    } 
} 
Questions connexes