Я использую бесплатный веб-хостинг (0000free), который поддерживает ASP.NET MVC, но использует Mono. Это первый раз, когда я развертываю приложение MVC, поэтому я немного не понимаю, где мне его развернуть. У меня Visual Studio 2010, и я использовал его функцию публикации (т.е. щелкните правой кнопкой мыши имя проекта и нажмите кнопку публикации), и я попробовал несколько вещей:
Утилита поиска по форуму хоста несколько слабая, поэтому я использую 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
Я читал Профессиональная платформа ASP.NET MVC и у них есть глава о публикации, но в ней не содержится какой-либо конкретной информации о месте публикации, это все, что они говорят (и в моем случае это не очень помогает):
Куда мне подать заявку?
Вы можете развернуть свое приложение в любой папке на сервере. При первой установке IIS автоматически создает папку для веб-сайта с именем Default Web Site в c: \ Inetpub \ wwwroot \, но вы не должны чувствовать себя обязанными помещать туда файлы приложения. Очень часто приложения размещаются на другом физическом диске, отличном от операционной системы (например, в e: \ sites \ 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
Для какой версии MVC написано ваше приложение? Mono в настоящее время поддерживает только ASP.NET 1.1 и большую часть 2.0, поэтому, если ваше приложение ориентировано на более высокую структуру, у него могут возникнуть проблемы. Кроме того, Mono еще не поддерживает MVC3, поэтому, если вы его используете, вам придется все переосмыслить.
Также посмотрите Вот для переноса приложения MVC в Mono.
«Нераспознанный атрибут targetFramework» означает, что ваша сборка нацелена на платформу, которая не поддерживается сервером. Например, если сервер поддерживает только <= 3.5 и ваша сборка нацелена на .Net 4.0, это вызовет эту ошибку. Итак, во-первых, дважды проверьте, на что нацелена ваша версия .Net и какую версию поддерживает сервер.