«CS0103: имя« модель »не существует в текущем контексте» ошибка только на SERVER - PullRequest
0 голосов
/ 17 мая 2018

Обзор

Я пытаюсь подключить существующее веб-приложение MVC 4 к MVC 5 и из Oracle DataAccess 11g в 12c.Он отлично работает локально в Visual Studio без ошибок, с полной функциональностью.Однако, когда я перемещаю его на сервер разработки, я получаю следующую ошибку:

Compiler Error Message: CS0103: The name 'model' does not exist in the current context Я просмотрел следующие сообщения Stack Overflow и безуспешно пытался исправить их:

Я думаю, что они на самом деле не применяются здесь, потому что ошибки в этих сообщениях происходят в VS, который работает нормально для меня.Если я не смотрю в неправильном месте, моя проблема, кажется, связана с настройками в IIS на сервере разработки.Тем не менее, если вы хотите, чтобы я опубликовал файл (ы) web.config, я могу это сделать.

Приложение

Как я уже говорил выше, я попробовал всеисправления в двух ссылках, которые я предоставил, безрезультатно.Мои файлы Web.config, похоже, в порядке;по крайней мере, я могу работать на месте без проблем.

Я использую последнюю версию MVC 5, Razor и т. Д .: enter image description here

Я также попытался установить Copy Local в True для всех DLL, который был своего рода слепой выстрел и ничего не делал.

При публикации сайта я нацеливаюсь на «любой процессор» и не прекомпилирую.Я попытался поиграть с обоими настройками, но это, похоже, не имеет значения.

Серверные вещи

Мои разработчики не хотят или не могут помочь с этой проблемой.Когда я иду к ним, они просто говорят: «Что вы хотите, чтобы я сделал, это сервер разработки».Серверные ресурсы на самом деле не являются моей сильной стороной, поэтому я нахожусь в режиме «тыкай и молись».

Сервер работает под управлением Windows Server 2008 R2 со всеми последними исправлениями.Когда я смотрю на раздел «Установленные программы» панели управления, он показывает .NET Framework 4.7.1.

Когда я смотрю на основные настройки пула приложений IIS, связанных с приложением, он показывает версию .NET Framework как.NET Framework v4.0.30319 с режимом управляемого конвейера, установленным на integrated.Есть ли причина, по которой он отличается от 4.7.1?Опять же, IIS не моя область знаний.

Когда я смотрю на Дополнительные настройки для пула приложений, он показывает версию платформы как 4.0, а "enable 32-bit" как false.Дайте мне знать, если есть какие-либо другие параметры, которые вы хотели бы знать.

На сервере установлены как 32-, так и 64-разрядные версии Oracle 12c.Я проверил это с администратором базы данных.

Это невероятно расстраивает, потому что локально кажется, что все в порядке, и я не уверен, где посмотреть, что отличается на сервере.Я получаю нулевую помощь от сервера, ребята из моего отдела.Любая помощь здесь будет принята с благодарностью.

Обновление Спасибо за комментарии, они содержали отличную информацию.Я уже пытался убедиться, что файлы web.config были доступны, и они были.Чтобы решить эту проблему, я решил удалить и воссоздать «сайт» в IIS.Я понятия не имею, почему это исправило это.Как я сказал в первоначальном комментарии, я не серверный парень

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Я столкнулся с той же проблемой.Я решил эту проблему, выполнив следующие действия:

  1. Проверьте файлы на сервере.В моем случае все файлы были доступны в репозитории, но файл web.config отсутствовал на сервере.

  2. Я добавил Web.config файл на сервер, после чего все страницы начали работать нормально.

0 голосов
/ 05 октября 2018

Я столкнулся с той же проблемой при развертывании моего приложения на сервере.В моем случае файл web.config отсутствовал в папке просмотра опубликованного приложения. Хотя это было в реальном проекте.

После того, как я добавил его в свою папку просмотра (щелкните правой кнопкой мыши -> Добавить существующий элемент) и после публикации приложения.это начало работать.

Или, если файл web.config отсутствует в папке просмотра, вы можете создать новый проект с такой же конфигурацией параметров проекта, скопировать его файл web.config представления в ваш реальный проект и добавить его в свой проект, как упоминалось ранее..

Ниже приведен шаг, который я предпринял, чтобы найти и исправить проблему.1) Сделайте «customError mode = on» в вашем домашнем каталоге файл web.config.Это покажет исключение на экране.Или просмотрите программу просмотра событий для получения сведений о предупреждении или исключении.

<system.web>
<customErrors mode="On" >       
        .....    
    </customErrors>
  </system.web>

2) Разверните папку приложения проекта (домашний каталог проекта) на локальном IIS.В моем случае это работало, потому что view смог найти свой web.config.

3) Опубликуйте свое приложение и разверните его на локальном IIS.В этом случае приложение не работало, потому что опубликованный двоичный файл сбрасывал файл web.config папки View.

Пожалуйста, проверьте эту ссылку также на вашу ошибку.

Для Oracledll, если пул приложений «enable 32-bit = false», он ожидает 64-битный oracle.DataAccess.dll.в этом случае вам просто нужно заменить / скопировать текущую dll-библиотеку oracle на 64-битную oracle dll в папке bin.Убедитесь, что клиент oracle установлен или соответствующая DLL оракула находится в GAC.

...