【问题标题】:How to publish an ASP.NET MVC application to a free host如何将 ASP.NET MVC 应用程序发布到免费主机
【发布时间】:2011-06-30 00:19:23
【问题描述】:

我正在构建一个 ASP.NET MVC 应用程序,并尝试将其部署在支持 ASP.NET 的免费主机 (0000free) 上。我尝试了几件事,但都没有奏效(即,当我浏览我的网站时,我只看到目录结构):

  1. 发布到本地文件夹,然后通过 ftp 将发布的文件复制到我的主机(在 public_html 目录中)。
  2. 通过 ftp 发布到根文件夹:ftp.mywebsite.com
  3. 通过 ftp 发布到 public_html 文件夹:ftp.mywebsite.com/public_html

通常我只会将 html 文件放在 public_html 文件夹中,但我感觉 MVC 应用程序的部署过程略有不同。我是否必须修改Web.config 或其他文件管理器?通常如何部署 MVC 应用程序(在免费主机上)?

更新:
了解到主机使用 Mono 并支持 .NET 4.0,但我仍然无法部署。

我有 Visual Studio 2010,我使用了它的发布功能(即右键单击项目名称并单击发布),我尝试了几件事:

  1. 发布方式:FTP到根文件夹。
  2. 发布方式:FTP到publich_html文件夹。
  3. 发布方法:文件系统到根文件夹。
  4. 发布方法:文件系统到publich_html文件夹。
  5. 发布方法:文件系统到我电脑上的本地目录,然后FTP到root,还尝试了public_html文件夹。
  6. 我进入 cPanel(控制面板)尝试查看是否必须为我的网站添加/启用 ASP.NET,但我没有看到任何内容。
  7. 我无法浏览到 Index.aspx,也无法从 index.html 重定向到它(正如 host forum 上的其他帖子所建议的那样),现在我有一个从 index.html 到 Index.aspx 的链接,但是它也不起作用(请参阅http://www.mydevarmy.com)
  8. 我也尝试将 Index.aspx 重命名为 Default.aspx,但这也不起作用。

楼主论坛的搜索功能有点弱,所以我用google搜索了他们的论坛:http://www.google.com/search?q=publish+asp.net+site%3A0000free.com%2Fforum%2F&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a

我一直在阅读Pro ASP.NET MVC Framework,他们有一章关于出版,但它没有提供任何关于出版地点的具体信息,这就是他们所说的(在我的情况下它不是很有帮助):

我应该把我的应用程序放在哪里?
您可以将应用程序部署到任何 服务器上的文件夹。当 IIS 首先 安装,它会自动创建一个 一个名为 Default 的网站的文件夹 网站位于 c:\Inetpub\wwwroot\,但 你不应该觉得有任何义务 把你的应用程序文件放在那里。它的 在主机上托管应用程序很常见 不同的物理驱动器 操作系统(例如,在 e:\websites\example.com)。它的 完全取决于您,并且可能是 受诸如您如何 计划备份服务器。

这是我在尝试查看我的 Index.aspx 页面时遇到的错误:

Unrecognized attribute 'targetFramework'. (/home/devarmy/public_html/Web.config line 1)

Description: HTTP 500. Error processing request.

Stack Trace:

System.Configuration.ConfigurationErrorsException: Unrecognized attribute 'targetFramework'. (/home/devarmy/public_html/Web.config line 1)
  at System.Configuration.ConfigurationElement.DeserializeElement (System.Xml.XmlReader reader, Boolean serializeCollectionKey) [0x00000] in <filename unknown>:0 
  at System.Configuration.ConfigurationSection.DoDeserializeSection (System.Xml.XmlReader reader) [0x00000] in <filename unknown>:0 
  at System.Configuration.ConfigurationSection.DeserializeSection (System.Xml.XmlReader reader) [0x00000] in <filename unknown>:0 
  at System.Configuration.Configuration.GetSectionInstance (System.Configuration.SectionInfo config, Boolean createDefaultInstance) [0x00000] in <filename unknown>:0 
  at System.Configuration.ConfigurationSectionCollection.get_Item (System.String name) [0x00000] in <filename unknown>:0 
  at System.Configuration.Configuration.GetSection (System.String path) [0x00000] in <filename unknown>:0 
  at System.Web.Configuration.WebConfigurationManager.GetSection (System.String sectionName, System.String path, System.Web.HttpContext context) [0x00000] in <filename unknown>:0 
  at System.Web.Configuration.WebConfigurationManager.GetSection (System.String sectionName, System.String path) [0x00000] in <filename unknown>:0 
  at System.Web.Configuration.WebConfigurationManager.GetWebApplicationSection (System.String sectionName) [0x00000] in <filename unknown>:0 
  at System.Web.Compilation.BuildManager.get_CompilationConfig () [0x00000] in <filename unknown>:0 
  at System.Web.Compilation.BuildManager.Build (System.Web.VirtualPath vp) [0x00000] in <filename unknown>:0 
  at System.Web.Compilation.BuildManager.GetCompiledType (System.Web.VirtualPath virtualPath) [0x00000] in <filename unknown>:0 
  at System.Web.Compilation.BuildManager.GetCompiledType (System.String virtualPath) [0x00000] in <filename unknown>:0 
  at System.Web.HttpApplicationFactory.InitType (System.Web.HttpContext context) [0x00000] in <filename unknown>:0 

【问题讨论】:

  • 不应该在 serverfault.com 上问这种问题吗?他们是面向管理员的,而不是编程的......
  • @Robert 我用谷歌搜索了他们的论坛 (publish asp.net site:0000free.com/forum/),我发现他们正在使用 Mono(不确定这意味着什么)。另一个人也看到了目录树,但被 adding an index.php redirect script 修复了,而且似乎 ASP.NET 项目必须为单声道编译......这有点令人困惑。
  • @Mono 是 .net 的 Linux 版本。我认为将您的 Asp.net MVC 应用程序部署到此主机不会那么容易。你认为他们实际上并不支持 Asp.net。他们只支持 Mono,这是 Asp.net 的 Linux 帖子。很抱歉告诉你这个。

标签: asp.net-mvc publish publishing


【解决方案1】:

如果您的托管服务提供商支持 ASP.NET MVC,那么您的部署过程应该与普通 ASP.NET 应用程序的部署过程没有什么不同。如果没有,您可以尝试bin-deployment。这是 MSDN 上的 another article。

【讨论】:

  • 我知道主机支持 ASP.NET,但它是否也必须支持 ASP.NET MVC(我以为它们是同一回事)?
  • 就我阅读的问题而言,他正在 Visual Studio 中执行 Deploy 命令。他尝试了几种选择,但都没有奏效。我想他需要联系托管服务提供商来部署 Asp.net 应用程序的步骤。我在他们的论坛上找不到任何关于它的信息。
  • @Lirik:是的,它们是一样的。只要主机支持 Asp.net,它也应该支持 Asp.net MVC。它只是可以与您的应用程序一起部署的 3 个额外的 DLL。
  • @Robert,我应该在哪个文件夹(在服务器上)部署带有 DLL 和所有内容的项目? publich_html?
  • @Lirik:我不知道这一点,因为此信息是特定于主机的。通常,开发人员只需部署在 IIS 中配置为应用程序的任何文件夹中。 public_html 在我看来,它更像是一个存放简单静态内容的文件夹,而不是运行动态应用程序。
【解决方案2】:

原来 Mono 版本不支持 MVC,所以我不得不将我的主机更改为支持 ASP.NET MVC 的主机。我不得不拿出一些现金,但“良好的托管”不是免费的。无论如何,谢谢大家的帮助!

【讨论】:

  • 好的。我看到你已经找到了这个信息(你可以忽略我对 Mono 的评论)。 +1 以获取有关您已采取的步骤的信息。顺便说一句:由于 Microsoft 堆栈需要金钱许可证,因此很难获得使用这些技术的免费主机。
  • @Robert Koritnik,几乎不可能获得免费的 ASP.NET 主机!不是在这里做一个无耻的插件,但我找到了 Arvixe 托管 30% 的优惠券,我能够以 84 美元(每月 3.50 美元)的价格获得 2 年的托管服务。我不必再与 Mono 打交道了,这让我很开心!
  • 对你有好处。如果您的网络应用程序可以产生一些钱,您可以希望产生足够的钱来支付托管费用。但是 Asp.net 托管不是免费的,这很正常。 Windows 许可证费用,Linux 没有。 SQL server 成本更高,MySql 是免费的。因此,其中一些提供免费的 SQL Express 版本......它始终是免费的,但对于初学者来说有足够高的限制。
猜你喜欢
  • 2019-04-19
  • 1970-01-01
  • 2021-11-08
  • 1970-01-01
  • 2013-12-12
  • 1970-01-01
  • 2012-02-19
  • 1970-01-01
  • 2014-11-01
相关资源
最近更新 更多