我在Windows 2003 Server上使用IIS 6,我正在尝试在该计算机上安装MVC2项目。我这样做有噩梦般的问题! 我已经查阅了很多关于该做什么的参考资料,而不是一个单一的工作。 (他们为MVC1项目工作,因为我有一些人已经在使用所述解决方案)。
对于使用IIS 6的MVC2项目需要做什么,有没有人有任何提示/提示/想法?我肯定会把头发拉过来。
我在我的两台开发服务器上试过它,两者都得到了相同的结果。我最接近服务页面的是一个错误页面“对象引用未设置为对象的实例”,但是,页面有try / catch块被忽略,所以我不认为它运行代码控制器,我认为它说控制器是错误的。 (作为参考,有问题的错误是针对HomeController.cs文件的。)
我尝试了什么:
到目前为止,这个项目中有很多代码,所以我只发布应该提供服务的第一页:
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:[我将此文件添加为潜在解决方案,因为它适用于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());
}
我没有列出CreateUserSecurity方法,但只是它使用Username调用数据库并返回数据库中与用户名匹配的记录。
编辑:添加了代码以及我到目前为止所尝试的内容(根据要求)。
答案 0 :(得分:2)
如果这是.NET 4.0中的asp.net mvc 2,请确保在网站扩展名下允许它。
答案 1 :(得分:1)
事实证明,其中一个技巧奏效了! (将.mvc扩展名添加到IIS)。它只是没有为我的机器工作。当我有其他人尝试该网站(连接到服务器)它服务它就好了。一旦我清除了我的缓存/ cookies /等,它似乎工作正常。我仍然无法让它直接在服务器上工作(在IIS或其他方面),但这很好,因为它永远不会从服务器本身运行。
答案 2 :(得分:1)
我按照这个步骤来设置WIN2K3上的IIS 6.0并且效果很好:
http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx
如果发现通过ASP.NET开发服务器在本地运行它很好。我没有尝试在我本地安装的IIS上设置应用程序。