C# 无法将ASP MVC应用程序部署到普通共享主机提供商
我从fasthosts.co.uk购买了Windows开发者托管软件包,我相信这是一个bog标准的共享托管软件包。它有ASP.NET3.5,根据他们的支持,还安装了SP1 我已经使用ASP MVC 2 preview 1开发了我的web应用程序(顺便说一句,它非常棒,我期待着进入preview 2),它在我的开发机器上运行良好,我已经通过安装程序包安装了preview 2 由于服务器没有安装MVC,所以我遵循了 如果发生以下情况,它就不会正常工作 当我部署它并将文件复制到服务器上时,我得到了一个毫无用处的“服务器错误500-内部服务器错误”。所以我修改了我的web配置,使customErrors mode=“Off”没有任何区别,所以我认为发生了一些事情,阻止它甚至进入customErrors位 然后,我继续取出web配置的一些部分,直到它给我一条像样的错误消息。我发现,只有在从配置中取出以下位时,它才会给我一条错误消息-C# 无法将ASP MVC应用程序部署到普通共享主机提供商,c#,asp.net-mvc,asp.net-mvc-2,C#,Asp.net Mvc,Asp.net Mvc 2,我从fasthosts.co.uk购买了Windows开发者托管软件包,我相信这是一个bog标准的共享托管软件包。它有ASP.NET3.5,根据他们的支持,还安装了SP1 我已经使用ASP MVC 2 preview 1开发了我的web应用程序(顺便说一句,它非常棒,我期待着进入preview 2),它在我的开发机器上运行良好,我已经通过安装程序包安装了preview 2 由于服务器没有安装MVC,所以我遵循了 如果发生以下情况,它就不会正常工作 当我部署它并将文件复制到服务器上时,我得到了一个
- 整个configSections部分
- 整个httpHandlers部分
- 整个system.codedom部分
- system.webServer部分的handlers和defaultDocument部分
-
我使用的是MVC生成的标准web配置,除了我自己的连接字符串之外,没有任何更改——我在测试中取出了连接字符串
现在,我得到了它给我一个错误消息,我得到了“无法加载文件或汇编系统.Web.Mvc…”消息,我被卡住了有什么建议吗
编辑:
我和其他人买了一个新的主机包,一切都很好!多亏了Phils的建议,当我部署了一个空的MVC应用程序,然后又部署了一个空的普通web表单应用程序时,我确信这是Fasthosts的错误——他们都给出了相同的错误
我目前正试图说服他们这是他们的错,但他们一直在向我保证问题出在我的网络配置上。我试图取消与他们的主机托管,但我显然有一个12个月的合同,即使我选择按月付款-哦,好吧
我想,不要使用Fasthosts将是一件需要从中删除的事情。服务器上需要ASP.Net MVC 2 dll。在您的项目中,选择“属性”下的dll,将“复制本地”更改为true。听起来您可能没有部署到webroot。是这样吗?尝试部署一个空的MVC项目。仔细检查Global.asax和代码隐藏。。。我认为这种错误发生在应用程序甚至无法启动时(因此除了500之外,没有其他错误)
您是否尝试过在一个简单、独立的ASPX页面中添加代码或其他内容?如果是的话,你会得到同样的错误吗?如果是这样,我认为ASP.NET 3.5没有正确地为您的虚拟目录配置,您必须请求技术支持重新安装/修复或在IIS虚拟目录属性的ASP.NET选项卡中设置版本。发生此错误的原因是fast host不允许配置部分的system.webserver部分与Web服务器交互(非常烦人)。我已经部署了一个MVC网站到一个fasthost帐户,它部分工作。。。您可以查看索引页,但路由不起作用。要消除错误,只需注释掉system.webserver部分。我无法使用.aspx或.mvc扩展名使路由正常工作:(我的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 = "" }
);
我认为根目录不起作用,因为我遇到了403“无目录列表”错误,所以我在站点中添加了一个default.aspx页面,它只是在OnInit中重定向到“~/Front.aspx/default”(请注意,我的默认控制器被重命名为Front而不是Home)
我将三个Mvc DLL更改为“复制本地”,以便将它们部署到我站点的bin目录中
我对我所有的页面链接都使用了HtmlAction,这样它们就会自动获得aspx扩展名
我注意到该网站的初始加载速度比使用webforms慢,但除此之外,一切似乎都很好。我知道这已经过时了,但我在尝试在Fasthosts共享托管平台上建立MVC 5网站时发现了这个问题。我最终让它工作的方法是添加
runAllManagedModulesForAllRequests=“true”
到myweb.config类似:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<remove name="FormsAuthenticationModule" />
</modules>
</system.webServer>
一切都很好
更新事实证明,这有点像用大锤敲开螺母,可能会影响性能。正确地指出,通过修改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>
谢谢,但我已经这样做了,因为我刚打电话给他们,他们说IIS7你可以在你的网站上放置MVC诊断页面来确定IIS版本()。当我在Fasthosts上这样做时,它告诉我它正在运行IIS()。有兴趣知道你是否让MVC工作,因为我还没有。勘误表:“当我在Fasthosts上执行此操作时,它告诉我它正在运行IIS 6“我让我的Mvc站点在Fasthosts上运行好了-请参阅下面的anwser。我的web主机说我的所有文件都应该在我的htdocs文件夹中,我想这是我的webroot,在那里部署也会出现同样的问题。在我部署到htdocs/test/之前,这没有什么区别。我尝试了一个新的空Mvc项目和我当前的项目。运气不好:(htdocs?这不是apache的东西吗?你能让一个正常的Web表单页面工作吗?如果是的话,写一个打印出所有服务器变量的页面。是的,我觉得有点奇怪。有一个正常的Web表单页面,打印出服务器变量工作正常。虽然我只是尝试部署一个空的正常Web应用程序,这会产生相同的error作为mvc应用程序-所以我想我