J'utilise IIS 6 sur un serveur Windows 2003 et j'essaie d'obtenir un projet MVC2 installé sur cette machine. Je fais des problèmes cauchemardesques! J'ai cherché des tonnes de références sur ce qu'il faut faire, et pas une seule ne fonctionne. (Ils travaillent pour des projets MVC1, car j'ai quelques-uns de ceux qui utilisent déjà ces solutions).Problèmes MVC 2 avec IIS 6
Est-ce que quelqu'un a des conseils/astuces/idées sur ce qui doit être fait pour les projets MVC2 avec IIS 6? Je suis définitivement en train d'arracher mes cheveux.
Je l'ai essayé sur 2 de mes serveurs de développement, et les deux obtiennent le même résultat. Le plus proche que je peux obtenir à une page servie est une page d'erreur "Référence d'objet non définie à une instance d'un objet", cependant, la page a des blocs try/catch qui sont ignorés, donc je ne pense pas qu'il exécute le code sur contrôleur, je pense qu'il dit que le contrôleur est l'erreur. (Pour la référence, l'erreur en question est dirigée vers le fichier HomeController.cs).
Ce que j'ai essayé:
- cartographie Wildcard
- Modification de routes à {} contrôleur .mvc
- Modification des itinéraires de {contrôleur} .ASPX
- Ajout de l'extension .mvc à IIS
- routes dans Global.asax Modification
Il y a LOT de code dans ce projet jusqu'à présent, donc je ne vais poster la première page (s) qui devraient être servis:
MASTER PAGE:
<div class="page">
<div id="header">
<div id="title">
<h1>Meritain RedCard Interface 2.0</h1>
</div>
<!--
This is the main menu. Each security role will have access to certain buttons.
-->
<div id="menucontainer">
<% if (Session["UserData"] != null)
{ %>
<% if (/*User Security Checks Out*/)
{ %>
<ul id="menu">
<li><%= Html.ActionLink("Home", "Index", "Home")%></li>
<li><%= Html.ActionLink("Selection", "Index", "Select", new { area = "Selector" }, null)%></li>
<li><%= Html.ActionLink("Audit", "Index", "Audit", new { area = "Auditor" }, null)%></li>
<li><%= Html.ActionLink("Setup", "Index", "Setup", new { area = "Setup" }, null)%></li>
<li><%= Html.ActionLink("About", "About", "Home")%></li>
</ul>
<% } %>
<% } %>
</div>
</div>
<div id="main">
<asp:ContentPlaceHolder ID="MainContent" runat="server" />
<div id="footer">
</div>
</div>
</div>
Default.aspx.cs: [I ajouté ce fichier comme une solution potentielle, car il fonctionne avec MVC 1]
protected void Page_Load(object sender, EventArgs e)
{
string originalPath = Request.Path;
HttpContext.Current.RewritePath(Request.ApplicationPath, false);
IHttpHandler httpHandler = new MvcHttpHandler();
httpHandler.ProcessRequest(HttpContext.Current);
HttpContext.Current.RewritePath(originalPath, false);
}
HomeController.cs:
public ActionResult Index()
{
loadApplication();
ViewData["Message"] = "Welcome to ASP.NET MVC!";
return View();
}
public ActionResult About()
{
return View();
}
private void loadApplication()
{
Session["UserData"] =
CreateUserSecurity(HttpContext.User.Identity.Name.ToString());
}
Je n'ai pas la liste La méthode CreateUserSecurity, mais tout ce qu'il fait appelle la base de données en utilisant le nom d'utilisateur et retourne l'enregistrement dans la base de données qui correspond au nom d'utilisateur.
EDIT: code ajouté et ce que j'ai essayé jusqu'à présent (comme demandé).
Y a-t-il quelque chose dans le journal des événements qui pourrait être utile? – mmacaulay
@mmacaulay - Absolument rien enregistré dans le journal des événements. – SlackerCoder
Veuillez mettre ce que vous avez essayé dans votre question, ainsi que le code que vous utilisez. –