我从fasthosts.co.uk购买了Windows Developer托管软件包,我相信这是一个标准的共享托管软件包。它有ASP.NET 3.5,并且根据他们的支持,还安装了SP1。
我使用ASP MVC 2预览1开发了我的网络应用程序(顺便说一下,这很棒,我很期待陷入预览2)并且它在我的开发机器上工作正常,我有预览2通过安装程序包安装。
由于服务器没有安装MVC,我跟着 Phil Haacks bin deployment method没有接缝可以发生以下情况......
当我部署它并将文件复制到服务器时,我得到一个简单无用的“服务器错误500 - 内部服务器错误”。所以我修改了我的web配置,以便customErrors mode =“Off”,这没有任何区别所以我发现正在发生的事情正在阻止它甚至到达customErrors位。
然后我继续取出网络配置的一些内容,直到它给了我一个体面的错误消息。我发现如果从配置中取出以下位,它只会给我一个错误信息 -
我正在使用MVC生成的标准Web配置,除了我自己的连接字符串之外没有任何更改 - 我已经为此测试选择了。
现在我得到它给我一个错误消息,我得到“无法加载文件或程序集System.Web.Mvc ...”消息,我被卡住了! - 有什么建议吗?
修改
我和其他人一起买了一个新的托管包,一切都运行良好!当我部署一个空的MVC应用程序时,我确信这是Fasthosts的错,感谢Phils的建议,然后是一个空的普通网络表单应用程序 - 他们都给出了相同的错误。
我目前正在试图说服他们这是他们的错,但是他们一直向我保证问题出在我的网络配置上。试图取消我的主机,但我显然是在12个月的合同中,即使我选择每月付款 - 哦。
我想不要使用Fasthosts将是一件可以带走的事情。
答案 0 :(得分:2)
听起来你可能没有部署到webroot。是这样的吗?尝试部署一个空的MVC项目。
答案 1 :(得分:2)
我知道这已经过时但我在尝试在Fasthosts共享托管平台上设置MVC 5网站时发现了这个Q& A.我最终使用它的方法是将runAllManagedModulesForAllRequests="true"
添加到我的 web.config 中,例如:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<remove name="FormsAuthenticationModule" />
</modules>
</system.webServer>
这一切都很棒!
更新事实证明这有点像用大锤破解坚果并且可能会影响性能。 Colin Farr正确地指出,通过修改web.config的模块部分可以更优雅地解决这个问题:
<modules>
<remove name="UrlRoutingModule-4.0" />
<add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
<!-- any other modules you want to run in MVC e.g. FormsAuthentication, Roles etc. -->
</modules>
答案 2 :(得分:1)
发生错误是因为快速主机不允许配置部分的system.webserver部分与webserver进行交互(Very Annoying)。我有一个MVC网站部署到一个快速主机帐户,它部分工作...你可以查看索引页面,但路由不起作用。要消除错误,只需注释掉system.webserver部分。我一直无法使用.aspx或.mvc扩展来使用路由:(
答案 3 :(得分:1)
我的MVC网站工作原理如下:
我将aspx扩展添加到我的默认路由映射:
routes.MapRoute(
"Default", // Route name
"{controller}.aspx/{action}/{id}", // URL with parameters
new { controller = "Front", action = "Default", id = UrlParameter.Optional }
);
routes.MapRoute(
"Root",
"",
new { controller = "Front", action = "Default", id = "" }
);
我不认为Root实际上有效,因为我得到了403,'没有目录列表'错误,所以我在网站上添加了一个default.aspx页面,它只是在OnInit中重定向到“〜/ Front。 aspx / Default“(请注意我的默认控制器重命名为Front而不是Home)。
我将三个Mvc dll更改为Copy Local,以便将它们部署到我站点的bin目录中。
我将HtmlAction用于所有页面链接,以便它们自动获得aspx扩展名。
我注意到网站在初始加载时比使用网页表格慢,但除此之外一切似乎都没问题。
答案 4 :(得分:0)
仔细检查你的Global.asax和代码隐藏...我认为当应用程序甚至无法启动时会发生这种错误(因此除了500之外你没有其他错误)。
您是否尝试过放入一个简单的,独立的ASPX页面,没有代码隐藏或任何东西?如果是这样,你会得到同样的错误吗?如果是这样,我认为没有为您的虚拟目录配置ASP.NET 3.5,并且您必须要求技术支持重新安装/修复或在IIS虚拟目录属性的ASP.NET选项卡中设置版本。 / p>
答案 5 :(得分:-1)
您需要服务器上的ASP.Net MVC 2 dll。在项目中,选择属性下的dll,将“Copy Local”更改为true。