Зачем вам нужно включать родительские библиотеки в дочерние проекты asp.net? - PullRequest
3 голосов
/ 23 июля 2010

У меня есть недавно созданное приложение asp.net MVC 2.0, которое полностью отделено от существующего приложения asp.net webforms.

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

Одна вещь меня совершенно озадачила, хотя приложение Webforms использует стороннюю DLL, которая не имеет ничего общего с моим MVCприложение, но я не могу использовать приложение MVC без включения этой DLL в каталог MVC \ bin.Почему это требуется?Это не часть этого приложения?Это даже вызывает у меня проблемы сейчас, так что я еще более любопытен ...

Почему эта зависимость от DLL требуется в моем приложении MVC?

1 Ответ

6 голосов
/ 24 июля 2010

Причина в том, что ваше родительское приложение, вероятно, устанавливает это в web.config в разделе модулей или обработчиков, а система конфигурации IIS в IIS 7+ использует распределенную / иерархическую систему конфигурации, поддерживающую файлы web.config.

В этом случае дочернее приложение web.config наследует все настройки от родительского web.config. К сожалению, ASP.NET использует каталог / bin только для каждого приложения, и его необходимо включить в корневой каталог, что означает, что, поскольку вы, вероятно, развертываете DLL в каталоге / bin родительского приложения, дочернее приложение не знать что-нибудь об этом.

Вы можете изменить родительский файл web.config так, чтобы он использовал тег местоположения, и установить значение атрибута attributeitInChildApplications, чтобы он не мог наследоваться в дочернем приложении: http://forums.iis.net/t/994377.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...