У меня проблема с моим веб-приложением. Я разрабатываю с использованием VS 2013 (запускается как Administrator) и Windows 8.WebApplication отлично работает на IIS Express, но не на локальном IIS
Когда я отлаживаю использование IIS Express - все работает нормально, без ошибок (я запускаю VS как администратор). Когда я меняю свойства проекта на использование локального IIS (он установлен) - я не могу использовать внешнюю библиотеку, которая помещается в GAC (Microsoft.FlightSimulator.SimConnect). Также я запускаю VS в качестве администратора. Ошибка сброса: «HRESULT E_FAIL был возвращен из вызова COM-компонента» - это ничего не говорит мне. Это бросается во время создания нового объекта SimConnect:
var simconnect = new SimConnect(...)
OFC, чтобы использовать SimConnect, во-первых, Microsoft Flight Simulator должен быть запущен (и он запущен). Это было вызвано причиной проблемы, которую я нашел в Интернете, вторая - предоставление разрешений (описано ниже).
Детали: У меня есть два проекта в решении: проект библиотеки (который используется для подключения к FSX) и веб-проект (MVC - для представления результатов).
1) Я попытался переместить весь проект проекта библиотеки в проект MVC - ничего.
2) Я использовал диспетчер IIS для публикации своего сайта (с отдельным AppPool) - результат такой же, как для локального IIS.
3) Я предоставил разрешения для папки (где размещены проекты) для моего собственного AppPool, а также для IUSR, IIS_IUSR и DefaultAppPool - полный доступ. И ничего.
4) Я побежал FSX в качестве администратора - тоже ничего:/
Я нашел обходной путь: Я переехал проект библиотеки к другому проекту - консольное приложение, где я HttpSelfHostConfiguration принять это. И позже я называю это api из основного проекта (MVC). Для этого решения все работает нормально (я тестировал локальную IIS [отладку], а также для диспетчера IIS). Мне нужно только запустить проект Host Api в качестве администратора.
Мне очень любопытно, в чем причина исключения. И дополнительно: как это решить :)
Похоже, проблема с разрешениями - но я предоставил каждому используемому AppPool.
Может быть причиной отсутствия разрешений для dll в GAC? Я так не думаю, но я понятия не имею, что делать. Если да, то как предоставить разрешения для dll в GAC (или как их скопировать)?
является веб-приложение работает под полным доверием? – Proxytype
Итак, для приложения требуется Flight Simulator для запуска? Это может работать при использовании процесса пользовательского режима, такого как IIS Express, но кто вы убедитесь, что он работает, когда никто не вошел в систему. Зависимость от процессов графического интерфейса от ваших приложений на базе IIS не является хорошей идеей и может не работать. –
@Proxytype Я добавил: ' SECURITYPOLICY>' в соответствии с этим (вы имели в виду, что?): Https: // msdn.microsoft.com/en-us/library/wyts434y(v=vs.140).aspx И все еще ничего для локального IIS:/ –
Krzyrok