Member 10379103 Ответов: 0

Ошибка конфигурации на рабочем сервере


У меня есть тестовый сервер и производственный сервер.

На обоих серверах у меня есть тестовая папка.

Когда я развертываю новые страницы aspx в тестовую папку на тестовом сервере, я могу отобразить и запустить отчет. Я использую ссылку со страницы меню, чтобы открыть эту страницу.

Когда я копирую одни и те же страницы с тестового сервера на рабочий сервер и копирую одну и ту же ссылку со страницы меню тестового сервера на страницу меню рабочего сервера, я получаю эту ошибку:

Configuration Error 
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately. 

Parser Error Message: Could not load file or assembly 'Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, ; or one of its dependencies. The system cannot find the file specified.

Source Error: 

An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine.


На обоих этих серверах все одинаково. Библиотеки DLL одинаковы на обоих серверах. Все уже существующие страницы на рабочем сервере загружаются и запускаются без каких-либо проблем или ошибок.

Это началось только на этой неделе. Я не внес никаких изменений в производственный сервер.

Я искал некоторые возможные решения, но не нашел ничего, чтобы решить эту проблему. Я проверил, что dll ReportViewer использует версию 11.0.0, а не версию 10. Мои файлы web. config одинаковы на обоих серверах.

Есть идеи, что вызывает эту ошибку?

Что я уже пробовал:

Я проверил, что dll ReportViewer использует версию 11.0.0, а не версию 10.

Я проверил метки времени/даты на моих библиотеках DLL и конфигурационных файлах на обоих серверах-они одинаковы.

ZurdoDev

Поместите элемент. DLL в папку bin сайта.

jgakenhe

Да, вы что-то упускаете. У вас отсутствует dll ReportViewer или Средство просмотра отчетов не установлено на сервере PROD. Стек имеет хороший список элементов для проверки: http://stackoverflow.com/questions/16493817/could-not-load-file-or-assembly-microsoft-reportviewer-webforms

Member 10379103

Элемент dll файлы уже в папку bin сайта. Есть несколько других страниц, которые используют этот же просмотрщик. Если ReportViewer.dll не было в мусорном ведре, другие страницы не загружались. Кроме того, страница на тестовом сервере также будет отображать ошибку и не загружаться.

Member 10379103

Библиотека ReportViewer dll уже находится в папке bin сайта, а Средство просмотра отчетов установлено на обоих серверах. Есть несколько других страниц, которые используют этот же просмотрщик. Если ReportViewer.dll не было в мусорном ведре, другие страницы не загружались. Кроме того, страница на тестовом сервере также будет отображать ошибку и не загружаться.

Member 10379103

Спасибо и за ссылку. Я проверил все, что там было. Оба сервера одинаковы, библиотеки DLL в корзине одинаковы, web.config одинаковы и ссылаются на сборки. Если бы они этого не сделали, я бы тоже увидел ошибку на тестовом сервере. Скребок для головы...

jgakenhe

У меня была похожая проблема около 4 лет назад, вот почему я ответил. Иногда это может быть полной болью. Я также хотел бы посмотреть, является ли dll одной и той же датой и версией как для test, так и для prod. И я бы посмотрел, есть ли у тестового сервера и prod-сервера dll в одном и том же месте в каталоге system 32 (я думаю). Где-то чего-то не хватает.

Member 10379103

Это боль! Оба сервера имеют одинаковую дату и версию. Если бы prod-сервер имел dll в другом каталоге system 32, разве другие страницы не отображали бы ту же ошибку и не загружались бы?

ZurdoDev

Тогда вы используете другую версию или что-то в этом роде. Что-то явно изменилось, и никто из нас не имеет доступа, поэтому я не уверен, что вы хотите от нас.

Member 10379103

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

Member 10379103

jgakenhe-возможно ли, чтобы ссылка на тестовую папку моего производственного сервера была повреждена? Как я уже говорил ранее - все метки времени/даты для библиотек DLL и web. confit одинаковы на обоих серверах. Я отправляю изменения на тестовый сервер, помещаю их в тестовую папку, и страницы загружаются. Я помещаю те же страницы в тестовую папку на сервере prod и получаю ошибку.

Я скопировал страницу. aspx на prod и поместил ее в другую папку на prod, и ошибки не было - так что, похоже, даже несмотря на то, что DLL и файлы web.config имеют одинаковые даты и время, что-то повреждено с фактической тестовой папкой на производстве. Возможно ли это вообще? Я никогда не видел, чтобы это происходило раньше...

jgakenhe

Я не думаю, что тестовая папка повреждена. Я думаю, что ваша проблема заключается в том, что что-то отличается на тестовом сервере и сервере prod. Если IIS тот же самый и фреймворки те же самые, я бы удалил и переустановил Microsoft Report Viewer 2012 и пошел оттуда. Возможно, вам придется сделать перезапуск, но что-то не хватает, связанное со средством просмотра отчетов, которое не работает.

Member 10379103

Спасибо за ваши предложения. Я не решаюсь удалить и переустановить ReportViewer на сервере prod, потому что все остальные страницы работают. Если я когда-нибудь пойму это, я опубликую решение на случай, если кто-то еще когда-нибудь столкнется с этой же проблемой.

Member 10379103

Хорошо, я только что проверил папку сборок на сервере и увидел Reportviewer версий 8, 9 и 10. Нет версии 11. Все страницы, находящиеся в данный момент на этом сервере, ссылаются на ReportViewer версии 11, а файл web.config ссылается только на версию 11. Библиотека DLL в папке BIN ссылается на версию 11 из gac_msil\Microsoft. ReportViewer."Веб-формы", который был создан, когда решение было построено.

Итак, может ли тестовая папка на рабочем сервере искать версию 11 средства просмотра отчетов на рабочем сервере вместо библиотеки DLL в корзине, в то время как тестовая папка на тестовом сервере ссылается на библиотеку DLL?

jgakenhe

Да. Похоже, вы на правильном пути!

Member 10379103

Тьфу. Как это вообще могло случиться????? Или, возможно, это хорошо, что это произошло в том случае, если страницы когда-нибудь" решат " игнорировать версию сборки ReportViewer, на которую ссылается DLL в корзине, и попытаются найти ее на server...my задача состоит в том, чтобы объяснить это вышестоящим. Последний вопрос - по вашему опыту, может ли установка версии 11 reportviewer на сервере потенциально привести к тому, что другие страницы начнут отображать ошибки? Поскольку это происходит не на тестовом сервере (который, кстати, является просто другим портом на том же физическом сервере), у меня действительно нет настоящей тестовой среды, и я бы установил ее на живой порт.

jgakenhe

Я не думаю, что это не повлияет на страницы .aspx, но это слишком рискованно для производства, если у вас нет низкого времени суток, чтобы сделать это, и у вас есть план отступления.

0 Ответов