【发布时间】:2010-02-05 15:57:26
【问题描述】:
我有一个网站,最初是用我添加了 MVC 功能的 web 表单编写的。在本地调试时,它工作正常,但是,一旦发布并上传到我的主机,路由就不起作用并返回 404。 我很确定我已经上传了所有正确的文件。只是看起来路由不起作用。
有什么想法吗?!
(该网站仍然可以正常提供正常的 aspx 页面)
我认为问题可能与Mixing ASP.NET MVC into ASP.NET WebForms有关
但我无法从该线程中看到解决方案是什么。看起来它可能与 app_pool 模式有关 - 但我在集成模式下运行,这是正确的 AFAIK
更新 2
所以我认为我的路由工作正常。我基本上创建了一个新的 MVC 应用程序,并逐行浏览了 web 配置文件,并确保我拥有我需要的一切。有趣的是,在线教程都没有提到您需要进行的正确添加。嘿嘿。。 我有另一个问题请注意... 当我加载我的 mvc 页面时,我收到了以下消息: SessionStateTempDataProvider 需要启用 SessionState。
我在 web.config 中添加了一行以启用会话(不知道它们已关闭),但它仍然无法正常工作。
更新 我创建了一个新的 asp.net MVC 项目并最终逐行检查 web.config 并确保与 MVC 相关的所有内容都包含在我的混合应用程序中。可以说,没有任何指南提到所需的所有设置(我使用的是专业的 asp.net mvc 1.0 书)。然后我包含了未发布的 global.asax 文件并设置了一个路由,以便 MVC 不会捕获对 / 的请求。我还必须在 web.config 中启用会话。
现在它可以工作了!
我是否应该将此问题标记为答案...不确定此处的协议:)
【问题讨论】:
-
托管系统上的IIS版本怎么样?
-
你安装了 ASP.Net MVC 再分发包吗?
-
它的 II7 并且我已经 bin 部署了 MVC,所以我在 bin 文件夹中有三个需要的 dll。
-
我无权访问 Web 服务器,因此部署了它的 bin。我在同一台服务器上有另一个 MVC 站点,它工作正常。出于某种原因,我认为 global.asax 没有被调用,所以路由没有被注册。不知道为什么或如何解决它
标签: asp.net asp.net-mvc webforms