Проблема IIS 7, MVC 3 и веб-сайта / веб-приложения - Обновлено: 2011-04-21 - PullRequest
0 голосов
/ 19 апреля 2011

Решено с помощью этого поста: Можете ли вы преобразовать приложение ASP.NET MVC в веб-сайт с помощью ASP.NET MVC и с какими проблемами вы можете столкнуться?

РЕДАКТИРОВАТЬ: 2011-apr-21 (избавился от предыдущего кода, чтобы его было легче читать, некоторые ответы и комментарии взяты из старого сообщения)

Итак, я пытаюсь заставить мою новую страницу MVC 3 работать с IIS 7.

Вот шаги, которые я предпринял до сих пор:

IIS:

1) Создать новый веб-сайт в IIS 7 и настроить его на использование .NET 4.0 (интегрированный режим)

WebSite:

1) Я только что установил новую VS 2010 и MVC 3 (3 дня назад), MVC 3, которую я скачал 3 дня назад с asp.net/mvc.

2) Я создал новый проект MVC 3, File-> New Project-> Asp.Net MVC 3 Web Application.

Теперь я публикую проект в путь к файлу (например, c: \ project \ newtestmvcapp

3) Я загружаю все содержимое папки (newtestmvcapp) и poff, это работает.

Теперь я удаляю файлы из домена.

4) Я загружаю нормальные файлы, которые находятся в пути проекта. Я загружаю все папки, кроме Bin, Obj и свойств.

5) Я запускаю страницу и теперь получаю следующую ошибку: Не удалось загрузить тип MvcApplication1.MvcApplication. <% @ Application CodeBehind = "Global.asax.cs" Inherits = "MvcApplication1.MvcApplication" Language = "C #"%>

6) Я изменяю CodeBehind на CodeFile и получаю следующую ошибку: Отсутствует частичный модификатор при объявлении типа 'MvcApplication1.MvcApplication'; существует другое частичное объявление этого типа. открытый класс MvcApplication: System.Web.HttpApplication

7) Я изменяю это: открытый класс MvcApplication: System.Web.HttpApplication, на это: открытый частичный класс MvcApplication: System.Web.HttpApplication

8) Теперь я просто получаю сообщение об ошибке, что ресурс (например, индекс не может быть найден или около, или на любой другой странице) Если я загружаю test.htm, он работает, если я загружаю страницу форм test.aspx работает. Только не MVC.

РЕДАКТИРОВАТЬ: Я нашел статью о разнице между веб-сайтом и веб-приложением. Может ли это быть причиной? Если так, как я могу изменить этот проект MVC 3, чтобы он стал веб-сайтом (таким образом, позволяя компилировать проект во время выполнения). В VS2010 нет Файла-> Новый веб-сайт-> Веб-сайт MVC 3.

Мы хотим иметь возможность просто загрузить новое представление или контроллер на сервер, а затем сервер должен скомпилировать его для нас. (Тестовый / Dev сервер).

Ответы [ 3 ]

1 голос
/ 26 июля 2011

Я только что написал пост в блоге об этой проблеме, хотя больше об интеграции MVC3 в существующий проект WebSite, применяются те же правила. Вы должны иметь возможность преобразовать ваше WebApplication в веб-сайт, щелкнув правой кнопкой мыши проект в VS, в меню должна быть опция для преобразования. Чтобы запустить MVC3 в проекте WebSite, просто поместите папку Controllers and Models в App_Code.

0 голосов
/ 19 апреля 2011

Попробуйте это:

Откройте командную строку от имени администратора и введите следующий текст:

Если вы используете 32-битный компьютер: «C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -i "

Для 64-битной машины:" C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -i "

Если это не такпопробуйте следующее:

Щелкните правой кнопкой мыши ссылку на System.Web.Routing, перейдите к свойствам и установите для CopyLocal значение true.

Надеюсь, это поможет.

0 голосов
/ 19 апреля 2011

Это:

В VS2010 я получаю следующий красный подчеркнутый "UrlRoutingModule" в add name = "UrlRoutingModule" type = "System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version = 3.5.0.0, Culture = нейтральный, PublicKeyToken = 31bf3856ad364e35"

Похоже, что вы используете System.Web.Routing dll .NET 3.5.

Поскольку вы создаете приложение MVC 3, правильно ли я предполагаю, что вы используете .NET 4? Если это так, это означает, что вы ссылаетесь на неправильную версию System.Web.Routing.

Это случайно не было приложением MVC 2, которое вы преобразовали в MVC 3?


Примечание

Этот ответ отредактирован и не имеет ничего общего с моим первоначальным ответом. Я указываю на это, потому что комментарий @ Патрика к моему ответу может сбить с толку.

...