Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法将ASP MVC应用程序部署到普通共享主机提供商_C#_Asp.net Mvc_Asp.net Mvc 2 - Fatal编程技术网

C# 无法将ASP MVC应用程序部署到普通共享主机提供商

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,所以我遵循了 如果发生以下情况,它就不会正常工作 当我部署它并将文件复制到服务器上时,我得到了一个

我从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配置的一些部分,直到它给我一条像样的错误消息。我发现,只有在从配置中取出以下位时,它才会给我一条错误消息-

  • 整个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应用程序-所以我想我