2009-10-02 37 views
3

我从fasthosts.co.uk购买了Windows Developer主机软件包,我相信这是一个bog标准共享主机软件包。它有ASP.NET 3.5,并且根据他们的支持,还安装了SP1。无法将ASP MVC应用程序拒绝到普通的共享主机提供商

我开发了我的web应用程序,使用ASP MVC 2预览版1(顺便说一下,我期待卡住预览版2),它在我的预览机上预览2通过安装程序包安装。

由于服务器没有安装MVC,我也跟着 Phil Haacks bin deployment method不缝如发生以下情况已经奏效......

当我部署它,将文件复制到服务器我得到一个普通的无用的“服务器错误500 - 内部服务器错误”。所以我修改了我的web配置,以使customErrors mode =“Off”,这没有什么区别,所以我想到了一些事情正在阻止它进入customErrors位。

然后我开始取出一些网页配置,直到它给了我一个体面的错误信息。我发现它只会给我一个错误消息,如果以下位取出的配置 -

  • 整个configSections部分
  • 整个HttpHandlers的部分
  • 整个system.codedom部分
  • 的处理程序和defaultDocument部分system.webServer部分

我使用MVC生成的标准Web配置,除了我自己的连接字符串 - 我为此测试拿出的内容以外没有任何更改。

现在,我得到它给我一个错误消息,我得到“无法加载文件或程序集System.Web.Mvc ...”的消息,我卡住了! - 有什么建议么?

编辑:

我买了一台新的主机包与他人在一起,这一切工作得很好!当我部署一个空的MVC应用程序时,我确信这是Fasthosts错误,这要感谢Phils的建议,然后是一个空白的正常Web表单应用程序 - 并且他们都给出了相同的错误。

我目前正在试图说服他们这是他们的错,但他们让我放心,我的问题是与我的网络配置。试图取消我的托管与他们,但我显然是在一个12个月的合同,即使我选择每月支付 - 哦。

我想不跟Fasthosts去是一件事情要从这一点。

+0

什么IIS的版本? – 2009-10-02 18:25:24

+0

只是响了他们,他们说IIS7 – Tom 2009-10-02 18:36:00

+0

你可以把你的网站上的MVC诊断页面,以确定IIS版本(http://bradwilson.typepad.com/blog/2010/03/diagnosing-aspnet-mvc-problems.html )。当我在Fasthosts上完成时,它告诉我它正在运行IIS(http://www.proofbydesign.com/mvcdiagnostics.aspx)。有兴趣知道你是否因为我还没有得到MVC而工作。 – 2010-07-07 10:12:33

回答

2

这听起来像你可能没有部署到webroot。是这样吗?尝试部署一个空的MVC项目。

+0

! – scottm 2009-10-02 18:48:31

+0

我的网站主机说我的所有文件都应该放在我的htdocs文件夹中,我猜是我的webroot,并且在那里部署会出现同样的问题。在我部署到htdocs/test /之前,这没有任何区别。我试过了一个新的空MVC项目和我目前的项目。没有运气:( – Tom 2009-10-02 22:51:52

+0

htdocs?是不是一个apache的东西?你能得到一个正常的Web窗体页面工作吗?如果是这样,写一个页面打印出所有的服务器变量 – Haacked 2009-10-02 23:23:44

-1

您需要服务器上的ASP.Net MVC 2 dll。在您的项目中,选择属性下的dll,将“Copy Local”更改为true。

+0

谢谢,但我已经这样做了,由该人自己回答http://haacked.com/archive/2008/11/03/bin-deploy-aspnetmvc.aspx – Tom 2009-10-02 18:19:45

0

仔细检查您的Global.asax和代码隐藏......我认为这种错误发生在应用程序甚至无法启动时(因此您除了500之外没有其他错误)。

你有没有试过把一个简单的,独立的ASPX页面没有代码隐藏或任何东西?如果是这样,你是否得到相同的错误?如果是这样,我认为ASP.NET 3。5未正确配置您的虚拟目录,您必须要求技术支持来重新安装/修复或设置IIS虚拟目录属性的ASP.NET选项卡中的版本。

+0

支持人员在报告目录中放置了几个标准aspx页面。净版本和日期 - 他们工作得很好 – Tom 2009-10-02 22:54:20

1

发生此错误是因为快速主机不允许配置部分的system.webserver部分与Web服务器交互(非常令人讨厌)。我有bin部署MVC网站到fasthost帐户,它部分工作...你可以查看索引页面,但路由不起作用。为了摆脱这些错误,只需注释掉system.webserver部分即可。我一直无法得到路由使用的.aspx或.mvc扩展:(

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 = "" } 
     ); 

我不认为根一个实际工作,因为我有一个403,'没有目录列表'的错误,所以我添加了一个default.aspx页面的网站,只是在OnInit重定向到“〜/ Front .aspx/Default“(注意,我的默认控制器重命名为Front而不是Home)。

我将三个Mvc dll更改为Copy Local,以便将它们部署到我的站点的bin目录中。

我对所有的页面链接都使用了HtmlAction,以便它们自动获得aspx扩展名。

我注意到该网站在初始加载时比使用网络表单更慢,但除了一切似乎没有问题外。

2

我知道这是过时的方式,但我发现这个Q &当试图建立一个在Fasthosts共享主机平台上的MVC 5网站。我得到了它的工作进行到底的方式是增加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> 
相关问题