我正在尝试将我的ASP.NET MVC 2网站从VS2010 beta 2部署到IIS7。发布工作正常,但没有一条路由有效,所以当我转到URL http://localhost/myapp/Home/Index时,我收到错误:
HTTP错误404.0 - 未找到 你正在寻找的资源 删除,更改名称,或者是 暂时不可用。
我正在部署到一个虚拟目录,该目录使用为.NET 4框架配置的应用程序池,并将托管管道模式设置为集成。此外,如果我进入基本设置 - >测试连接,则两个测试都通过。根据我的理解,它应该有效吗?
我从VS2008部署书呆子晚餐时没有任何问题,这很好。
答案 0 :(得分:0)
您是否在发布中包含了正确的MVC dll?
我在浏览MVC应用程序时遇到问题,原因是我没有在bin文件夹中包含MVC dll。
答案 1 :(得分:0)
根据我对ASP.NET MVC的经验,我已经看到IIS需要Default.aspx
页才能正常运行。我正在使用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);
}
}
}