【问题标题】:ASP.NET Routing not firing when site is published to remote host站点发布到远程主机时,ASP.NET 路由未触发
【发布时间】: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


【解决方案1】:

我正在经历同样的事情,因为我使用已编译的视图进行部署。我不知道为什么,但 global.asax 不包含在我上传的 Release 文件夹中。我只是认为它被编译成其中一个 DLL。我得到了 404 的所有内容,所以我尝试上传 global.asax 并且该网站变得生动起来。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-15
    • 1970-01-01
    • 1970-01-01
    • 2019-04-08
    • 1970-01-01
    • 1970-01-01
    • 2010-10-19
    • 2018-08-31
    相关资源
    最近更新 更多