ASP.NET MVC. Возможно ли иметь несколько проектов MVC на одном сервере?

У меня так много проблем с запуском и запуском более 1 проекта MVC на одном сервере ... Я использую систему Windows XP, на которой работает IIS по умолчанию (я полагаю, 5.1).

На данный момент я даже создаю проекты WebSetup для каждого проекта, который я создаю, чтобы убедиться, что все идет хорошо, в то время как эти проекты можно очень легко развернуть с помощью XCopy.

В итоге я могу запустить проект MVC (например, пример ContactManager) по адресу: http://servername, ИЛИ http://servername/ContactManager. Но как только у меня есть проект в обеих локациях, начинается ужас.

"title is not a member of ViewPage" -> yeah, right...
Section or group name 'system.web.extensions' is already defined. -> sure 
let me <clear /> or <remove /> that one, oh that's not valid... 

Возможно ли вообще иметь более одного проекта (приложения) ASP.NET MVC, работающего на одном компьютере с Windows XP?

http://server/       Root project  (MVC)
http://server/app1   Application 1 (MVC)
http://server/app2   Application 2 (MVC)
http://server/appX   Application X (MVC)

Может кто-нибудь назвать какие-то точки внимания или что-то в этом роде?


person Ropstah    schedule 11.05.2009    source источник
comment
@ Алекс: хороший вопрос. @ropstah: знаете ли вы, если и имя сервера, и servername/ContactManager имеет связанное с ним приложение (IIS) или является сайтом servername/ContactManager возможно, работает в том же приложении, что и servername?   -  person Matt Kocaj    schedule 11.05.2009
comment
И корень, и подпроект имеют собственное имя приложения. Корень: Интранет, Подпрограмма: ContactManager   -  person Ropstah    schedule 11.05.2009


Ответы (7)


Возможно ли вообще иметь более одного проекта ASP.NET MVC (приложения), работающего на одном компьютере с Windows XP?

Да, абсолютно возможно иметь более 1 приложения ASP.NET MVC на одном компьютере с Windows XP. Я только что создал два новых приложения ASP.NET MVC на своем тестовом компьютере под управлением свежей Windows XP SP3, и они работают без сбоев.

ОБНОВЛЕНО:

Я только что создал 3D-приложение:

  • Корневой путь IIS изменен на это приложение
  • Добавлено сопоставление .* с C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll.
  • Проверен анонимный доступ

Тем не менее все 3 приложения работают очень хорошо

ОБНОВЛЕНО:

Есть одна проблема с сопоставлением .* с C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll в корне сервера: все ваши не- Простые приложения ASP.NET MVC перестанут работать.

Главная это помогает

person eu-ge-ne    schedule 11.05.2009
comment
Это был мой вопрос точно :). Был ли у вас один проект в корне (сервер/) и один проект в качестве подчиненного? (сервер/суб/) ? - person Ropstah; 11.05.2009
comment
Да — localhost, localhost/mvcapp1 и localhost/mvcapp2 - person eu-ge-ne; 11.05.2009
comment
Я нашел неприятную информацию на forums.asp.net/t/1406317.aspx Turns что каждый раз, когда вы редактируете мастер-страницу, что-то идет не так со ссылкой на System.web.mvc.ViewMasterPage. Можете ли вы отредактировать HTML-код на главной странице, перестроить и посмотреть, работает ли сайт? - person Ropstah; 11.05.2009
comment
Просто добавил немного HTML в Site.master во всех 3 приложениях - ничего не изменилось; Я также очистил кеш в своем Firefox и перезапустил службу IIS; Все 3 приложения по-прежнему работают без ошибок - person eu-ge-ne; 11.05.2009
comment
Странно, я собираюсь создать несколько пустых приложений по умолчанию и развернуть их. Оттуда я отредактирую их, чтобы увидеть, где что-то пойдет не так. Спасибо! - person Ropstah; 11.05.2009
comment
как вы структурируете файловую систему для этого? папки отдельные или подпроект находится внутри корневой папки проекта? - person gabe; 30.07.2009
comment
Я знаю, что это старо, но как это ответить на что-либо? - person mawburn; 28.06.2012

Да, это возможно. У меня есть 3 приложения MVC, работающие под 1 основным приложением MVC.

- Main site
           - Administration
           - Sub App 2
           - ...

Тем не менее, вам необходимо проверить следующие детали.

  1. проверьте, все ли основное и вспомогательные приложения настроены на использование сопоставления подстановочных знаков для MVC с aspnet_isapi.dll.

  2. из-за наследования web.configs вам необходимо установить свойство в корневом приложении MVC... оберните его вокруг вашего ‹ system.web >

<location path="." inheritInChildApplications="false">
   <system.web>...
</location>
person David    schedule 11.05.2009
comment
Спасибо за ваш комментарий. Однако это не связано с наследованием web.config. Но твой ответ - это то, что мне нужно было знать. Ю-жен-не получает признание за то, что первым дал (тот же самый) ответ и за его усилия. Вы получаете голоса за краткий ответ;) - person Ropstah; 11.05.2009

IIS5.1, поставляемый с XP, поддерживает только один веб-сайт (но несколько виртуальных каталогов). Я считаю, что это будет вашим ограничивающим фактором.

IIS6.x и выше, где у вас много веб-сайтов (и много пулов приложений), предпочтительнее при попытке получить несколько приложений MVC на одном сервере.

ИЗМЕНИТЬ Вы всегда можете использовать бесплатную версию VMware Server и просто создайте кучу виртуальных машин с XP для тестирования/разработки.

person Matt Kocaj    schedule 11.05.2009
comment
Я бы лично обновился до IIS 6.0. - person peacedog; 11.05.2009
comment
Я говорю о нескольких веб-сайтах в качестве приложений. Итак, корневое приложение на сервере и дочерние приложения на сервер/приложение1, сервер/приложение2 и т. д. - person Ropstah; 11.05.2009
comment
@ropstah: Да, я понимаю, о чем вы говорите, но возможно, что каждому приложению MVC может потребоваться настоящий «веб-сайт», а не просто «приложение». Я не знаю этого наверняка... но есть много ограничений IIS5.1, которые плохо задокументированы. - person Matt Kocaj; 11.05.2009
comment
что сказал Peacedog - IIS5 - это технология каменного века - person annakata; 11.05.2009

в IIS определено 2 отдельных приложения?

person Alex    schedule 11.05.2009
comment
Да это так. Корень называется Интранет, Подпроект называется: ContactManager - person Ropstah; 11.05.2009

В XP решением было бы использовать сервер Apache с Mono 2.4. Он очень хорошо работает с ASP.NET MVC и даже с SQL Server (‹= 2005). Надеюсь, однажды мы увидим это в комплекте с какой-нибудь будущей версией Xamp или EasyPHP :) Это позволит всем, кому интересно, попробовать.

person TigrouMeow    schedule 11.05.2009
comment
Ваше решение выглядит очень интересно (по крайней мере для меня) но думаю не в этом случае - person eu-ge-ne; 11.05.2009

Убедитесь, что корневая папка каждого приложения в диспетчере IIS настроена как другое веб-приложение.

person Richard    schedule 11.05.2009
comment
В этом случае. Между прочим, проект WebSetup в Visual Studio делает это автоматически. - person Ropstah; 11.05.2009

Я наткнулся на этот пост, который должен дать вам простой и понятный способ сделать это (с субдоменами): http://blogs.securancy.com/post/ASPNET-MVC-Subdomain-Routing.aspx

person TigrouMeow    schedule 15.05.2009