2010-01-22 95 views
0

我在Windows XP机器上创建了ASP.net mvc应用程序。现在,我正处于我想部署我的应用程序的阶段。我已经完成了一些关于如何在IIS 5.1和6.0下安装/配置MVC应用程序的搜索,但我仍然遇到了问题,尽管我已经完成了所有工作,所以我相信,通过本书。在Win2k3问题上部署Asp.Net MVC应用程序

在我的XP机器上,我创建了一个虚拟目录,并添加了应用程序映射“。*”,并取消选中“检查该文件是否存在”。

当我导航到localhost/vince /我的页面显示很棒!登录之后,我被重定向到: 本地主机/文斯/交易/指数

视图(交易/的Index.aspx)只显示业务信息...

用户,有自由编辑自己的帐户通过点击这使他到我的帐户链接: 本地主机/文斯/帐号/索引

我在该视图底部的取消按钮,基本上带你回到: 本地主机/文斯/交易/指数

t的查看来源帽子取消按钮是这样的:

<input onclick="location.href='/Transaction/Index'" 
     type="button" value=" Cancel " /> 

当用户点击取消按钮,他被发送到本地主机/交易/指数

我也得到一个404页没有发现问题是...请注意如何名称我的虚拟目录“vince”被删除。

为了进一步测试......我决定在Win2k3上用IIS 6.0部署我的MVC应用程序。创建完全相同的东西,虚拟目录并添加了应用程序映射,只是意识到它正在做同样的事情。现在,我创建了一个WebSite,而不是创建一个虚拟目录。奇怪的是,它现在无需改变任何东西......没有人知道它为什么现在可以在一个新的网站中工作,而不是一个新的虚拟目录。

感谢

+0

URL生成您的取消按钮很可能是编码错误。小心显示你的标记? – 2010-01-22 16:42:03

+0

这是/ Transaction/Index,因为那是你编码的地方。 – 2010-01-22 16:46:56

回答

0

这听起来并不像一个服务器设置,操作系统版本,或IIS版本问题...什么是你的取消按钮准确的URL请求?

1

您的取消按钮正在将浏览器发送到/Transaction/Index。重要的是要注意该URL上的主要斜线。这会将您发送到网站的根目录(不包含虚拟目录)。这就是为什么当你创建一个网站时它可以在IIS 6上运行 - 这里没有使用虚拟目录。

解决方法是使用路由基础结构生成取消按钮的链接 - 听起来您已经为您的应用程序中的其他链接执行此操作。

0

你的HTML改为:

<input onclick="location.href='<%= Url.Action("Index", "Transaction") %>'" 
    type="button" value=" Cancel " />