在Win2k3问题上部署Asp.Net MVC应用程序

时间:2010-01-22 16:39:25

标签: asp.net-mvc

我在Windows XP机器上创建了一个ASP.net mvc应用程序。现在,我正处于我想部署应用程序的阶段。我已经完成了一些谷歌搜索如何在IIS 5.1和6.0下安装/配置MVC应用程序,但我仍然遇到问题,虽然我已经完成了所有事情,所以我相信,这本书。

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

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

视图(Transaction / Index.aspx)只显示商业信息......

用户可以通过单击MyAccount链接来编辑他的帐户,这可以将他带到: 本地主机/文斯/帐户/索引

我在该视图的底部有一个取消按钮,它基本上会让您回到: localhost / vince / Transaction / Index

该取消按钮的查看源是:

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

问题是当用户点击取消按钮时,他正被发送到localhost / Transaction / Index

我找不到404页面...注意我的虚拟目录“vince”的名称是如何删除的。

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

由于

3 个答案:

答案 0 :(得分:1)

您的取消按钮正在将浏览器发送至/Transaction/Index。需要注意的重要一点是该URL的前导斜杠。这会将您发送到站点的根目录(不包含虚拟目录)。这就是为什么它在创建网站时在IIS 6上运行的原因 - 那里没有使用虚拟目录。

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

答案 1 :(得分:0)

它听起来不像服务器设置,操作系统版本或iis版本问题...您的取消按钮请求的确切网址是什么?

答案 2 :(得分:0)

将您的HTML更改为:

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