Как опубликовать приложение ASP.NET MVC на бесплатном хосте
Я использую бесплатный веб-хостинг (0000free), который поддерживает ASP.NET MVC, но он использует Mono. Это первый раз, когда я развертываю приложение MVC, поэтому я немного озадачен тем, где мне нужно развернуть его. У меня есть Visual Studio 2010, и я использовал ее функцию публикации (то есть щелкните правой кнопкой мыши на имени проекта и нажмите "Опубликовать"), и я попробовал несколько вещей:
- Метод публикации: FTP в корневую папку.
- Метод публикации: FTP в папку publich_html.
- Метод публикации: Файловая система в корневой папке.
- Метод публикации: Файловая система в папке publich_html.
- Метод публикации: Файловая система в локальном каталоге на моем компьютере, а затем FTP в корневой каталог, а также попробуйте папку public_html.
- Я вошел в cPanel (панель управления), чтобы попытаться определить, нужно ли добавить / включить ASP.NET для моего веб-сайта, но я ничего там не увидел.
- Я не могу перейти к Index.aspx и не могу перенаправить его из index.html (как это предлагается из других сообщений на форуме хоста), сейчас у меня есть ссылка с index.html на Index.aspx, но она тоже не работает (см. http://www.mydevarmy.com/)
- Я также пытался переименовать Index.aspx в Default.aspx, но это тоже не работает.
Утилита поиска по форуму хоста несколько слабая, поэтому я использую Google для поиска по их форуму: http://www.google.com/search?q=publish+asp.net+site%3A0000free.com%2Fforum% 2F & т = UTF-8 & ае = UTF-8 & водно = т & RLS = org.mozilla: EN-US: официальный и клиент = светлячок-а
Я читал Pro ASP.NET MVC Framework, и у них есть глава о публикации, но она не дает никакой конкретной информации о месте публикации, это все, что они говорят (и это не очень полезно в моем случае):
Где я должен разместить свое заявление?
Вы можете развернуть свое приложение в любой папке на сервере. Когда 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
2 ответа
"нераспознанный атрибут targetFramework" означает, что ваша сборка нацелена на структуру, которая не поддерживается сервером. Например, если сервер поддерживает только <=3.5 и ваши цели сборки.Net 4.0, это сгенерирует эту ошибку. Итак, во-первых, дважды проверьте, на что нацелена ваша версия.Net и какую версию поддерживает сервер.
Против какой версии MVC написано ваше приложение? Mono в настоящее время поддерживает только ASP.NET 1.1 и большую часть 2.0, поэтому, если ваше приложение предназначено для более высокой платформы, оно будет иметь проблемы. Кроме того, Mono еще не поддерживает MVC3, поэтому, если вы используете его, вам придется переосмыслить вещи.
Также обратите внимание на портирование приложения MVC на Mono.