Проблемы IIS7 + WCF + Silverlight - PullRequest
       17

Проблемы IIS7 + WCF + Silverlight

1 голос
/ 04 апреля 2010

Я уже некоторое время собираю приложение silverlight и службу WCF, а недавно пытался разместить их в IIS7.

Я установил IIS7 на Windows Server 2008 R2 и добавил эти два приложения на мой веб-сайт по умолчанию. У меня есть ряд проблем, поэтому я надеюсь, что один из вас может помочь ...

1) Приложения службы Silverlight и WCF не работают с сквозной аутентификацией. Мне нужно "подключиться как" учетная запись сервера администратора при настройке приложения. Я прочитал в Интернете, что вам нужно использовать поле «как» только при подключении к другому компьютеру. Если я не предоставляю учетные данные администратора, я получаю эту ошибку. Нужно ли устанавливать разрешения где-то еще?

Ошибка HTTP 500.19 - Внутренняя ошибка сервера Запрашиваемая страница не может быть доступ, потому что связанные данные конфигурации для страницы недействительным. Подробная информация об ошибках Модуль IIS Web Core Notification Обработчик BeginRequest Еще не определен Код ошибки 0x80070005 Конфиг Ошибка Не удается прочитать файл конфигурации из-за недостаточных разрешений Файл конфигурации \? \ C: \ Users \ Администратор \ Documents \ My Dropbox \ Research Masters \ Project \ WCFService \ Website \ web.config Запрошенный URL http :: // localhost: 80 / WCFService / Service.svc Физический путь C: \ Users \ Администратор \ Documents \ My Dropbox \ Research Masters \ Project \ WCFService \ Website \ Service.svc Метод входа Еще не Определен Вход в систему Пользователь еще не определен Источник конфигурации -1: 0: Ссылки и дополнительная информация Эта ошибка возникает, когда есть проблема с чтением файла конфигурации для веб-сервера или веб приложение. В некоторых случаях журналы событий могут содержать больше информация о том, что вызвало эту ошибку.

2) Visual studio создала 2 веб-страницы для запуска моего приложения silverlight (.html и .aspx). Когда я запускаю приложение silverlight (подключено как администратор), я могу без проблем перейти на страницу .html. Когда я пытаюсь открыть файл .aspx, я получаю следующую ошибку

Ошибка сервера в приложении «/ Platform».

Доступ запрещен.

Описание: произошла ошибка при доступе к требуемым ресурсам чтобы удовлетворить эту просьбу. Возможно, у вас нет разрешения на просмотр запрашиваемые ресурсы.

Сообщение об ошибке 401.3: у вас нет прав для просмотра этого каталога или страницы с использованием предоставленных вами учетных данных (доступ запрещен из-за Списки контроля доступа). Попросите администратора веб-сервера дать вам доступ к 'C: \ Users \ Администратор \ Documents \ My Dropbox \ Research Мастера \ Project \ Platform \ Сайт \ PlatformTestPage.aspx».

Информация о версии: Microsoft .NET Framework Версия: 4.0.30128; ASP.NET версия: 4.0.30128.1

3) Служба WCF работает нормально (опять же, как администратор), пока я не перезапущу сервер. Когда я пытаюсь запустить службу WCF после перезагрузки, сборка mysql отсутствует в решении. Если я просто перестроил решение и снова запустил сервис ... он работает (до следующего перезапуска). Что вызывает эту ошибку?

Решение здесь - http://tinypic.com/view.php?pic=5yasqx&s=5

Ошибка сервера в приложении / WCFService.

Не удалось загрузить файл или сборку 'MySql.Data, версия = 6.2.2.0, Культура = нейтральная, PublicKeyToken = c5687fc88969c44d 'или одна из ее зависимостей. Доступ запрещен.

Описание: необработанное исключение произошло во время выполнения текущий веб-запрос. Пожалуйста, просмотрите трассировку стека для более информация об ошибке и ее возникновении в коде.

Сведения об исключении: System.IO.FileLoadException: не удалось загрузить файл или сборка 'MySql.Data, версия = 6.2.2.0, культура = нейтральная, PublicKeyToken = c5687fc88969c44d 'или одна из его зависимостей. Доступ есть отказано.

Ошибка источника:

Во время выполнениятекущий веб-запрос. Информация о происхождении и местонахождении исключение можно определить с помощью трассировки стека исключений ниже.

Отслеживание нагрузки сборки: следующая информация может быть полезна для определить, почему сборка 'MySql.Data, версия = 6.2.2.0, Культура = нейтральная, PublicKeyToken = c5687fc88969c44d 'не может быть загружена.

WRN: регистрация привязки сборки выключена. Чтобы включить привязку сборки регистрация ошибок, установите значение реестра [HKLM \ Software \ Microsoft \ Fusion! EnableLog] (DWORD) для 1. Примечание. некоторое снижение производительности, связанное с ошибкой привязки сборки протоколирование. Чтобы отключить эту функцию, удалите значение реестра [HKLM \ Software \ Microsoft \ Fusion! EnableLog].

Трассировка стека:

[FileLoadException: не удалось загрузить файл или сборку 'MySql.Data, Версия = 6.2.2.0, Культура = нейтральная, PublicKeyToken = c5687fc88969c44d 'или одна из его зависимостей. Доступ запрещен.]
System.Reflection.RuntimeAssembly._nLoad (AssemblyName fileName, String codeBase, Evidence AssemblySecurity, RuntimeAssembly locationHint, StackCrawlMark & ​​stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) + 0
System.Reflection.RuntimeAssembly.InternalLoadAssemblyName (AssemblyName AssemblyRef, Evidence AssemblySecurity, StackCrawlMark & ​​stackMark, Boolean forIntrospection, Boolean suppressSecurityChecks) + 567
System.Reflection.RuntimeAssembly.InternalLoad (String assemblyString, Сбор доказательствБезопасность, StackCrawlMark & ​​stackMark, Boolean forIntrospection) +192 System.Reflection.Assembly.Load (String AssemblyString) + 35
System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost (String constructorString, Uri [] baseAddresses) + 243
System.ServiceModel.HostingManager.CreateService (String normalizedVirtualPath) + 1423
System.ServiceModel.HostingManager.ActivateService (String normalizedVirtualPath) + 50
System.ServiceModel.HostingManager.EnsureServiceAvailable (String normalizedVirtualPath) + 1132

[ServiceActivationException: служба '/WCFService/Service.svc' не может быть активирован из-за исключения во время компиляции. сообщение об исключении: «Не удалось загрузить файл или сборку» MySql.Data, Версия = 6.2.2.0, Культура = нейтральная, PublicKeyToken = c5687fc88969c44d 'или одна из его зависимостей. Доступ запрещен ..]
System.Runtime.AsyncResult.End (результат IAsyncResult) + 889824
System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End (IAsyncResult результат) + 179150
System.Web.AsyncEventExecutionStep.OnAsyncEventCompletion (IAsyncResult ар) + 107

Информация о версии: Microsoft .NET Framework Версия: 4.0.30128; ASP.NET версия: 4.0.30128.1

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

Ответы [ 3 ]

1 голос
/ 05 апреля 2010

Мои предложения:

1) Проверьте разрешения папки вашего веб-приложения. Вы должны отредактировать разрешения для папки вашего веб-приложения, чтобы пользователь IIS мог читать из этой папки. Поэтому вам следует открыть диалоговое окно свойств папки для папки в проводнике Windows и проверить, имеет ли пользователь пула приложений хотя бы разрешения на чтение. Если вы не предоставили другого пользователя для пула приложений, то пользователь по умолчанию должен быть IIS_IUSRS.

2) Проверьте, включен ли asp.net в вашей системе, запустив:

Если в вашей системе установлен .Net 4: "% WINDIR% \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe" –i Иначе: "% WINDIR% \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_regiis.exe" –i

Приведенная выше команда зарегистрирует / исправит вашу установку .Net с IIS.

3) Ваша DLL-библиотека mysql находится в папке bin? Я бы проверил, есть ли у вас права на чтение этой папки. Если dll не находится в той же папке, что и dll вашего приложения, проверьте, установлена ​​ли dll в GAC.

С уважением,

0 голосов
/ 06 апреля 2010

1) Дайте разрешения папке для группы IIS_IUSRS. Также проверьте, имеет ли пул приложений для приложения в диспетчере IIS -> «Пулы приложений» значение Identity, установленное как «LocalSystem». Для меня это был «NetworkService», его установка на «LocalSystem» решила это.

0 голосов
/ 05 апреля 2010

Вы не должны иметь возможность размещать приложения Silverlight с IIS7. Попробуйте разместить приложение Silverlight на сервере Apache с помощью сценария php / html.

Надеюсь, что помогает мат Пожалуйста, оцените мой ответ

Anzwerx

...