Classic asp «Произошла ошибка при проверке безопасности сообщения». Безопасность на транспортном уровне iis7 - PullRequest
2 голосов
/ 05 августа 2011

На II7 мы размещаем API на основе WCF / asp.net.Чтобы позволить пользователям классического приложения asp подключаться к API, нам пришлось опубликовать версию, которую мы называем «транспорт».Эта транспортная версия также написана на asp.net, она указывает на одну и ту же сборку, просто уровень безопасности отличается тем, что классическая asp может проходить аутентификацию.Безопасность на транспортном уровне используется вместо защиты на основе сообщений.

При использовании браузера для загрузки справочника по сервису я могу загрузить страницу svcutil.exe ... WDSL.

При использовании моего тестаСтраница ASP для вызова веб-метода из этой ссылки я получаю следующее возвращаемое:

Закончен вызов веб-службы.Status = Internal Server Error ResponseText = a: InvalidSecurityAn произошла ошибка при проверке безопасности сообщения.

Это говорит о том, что аутентификация не удалась.При тестировании с использованием asp.net или приложения WCF storm для связи с обычным API все работает хорошо.

API был недавно перенесен, может показаться, что что-то настроено неправильно, но я затрудняюсь объяснить, что.

Я могу перейти к справочнику службы WDSL svcutil.exe ..., при выборе его через браузер я получаю ожидаемый XML-ответ.

ИМЯ ПОЛЬЗОВАТЕЛЯ и пароль использовались при использовании не классической публикации API asp с использованием secuirty на основе сообщений.

Можно ли опубликовать несколько советов по устранению неполадок, которые могут помочь диагностироватьВопрос, в частности, касательно поиска и настройки ошибок безопасности на транспортном уровне?

Спасибо, Скотт

ИЗМЕНЕНО ДЛЯ ДОБАВЛЕНИЯ СЛЕДУЮЩЕГО ОБНОВЛЕНИЯ:

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

Ошибка моей тестовой страницы: ResponseText = a: ошибка InvalidSecurityAn при проверке безопасности сообщения.

Журнал IIS показывает: v3 / transport / testclassicasptransportwcfservice.asp (200 0 0) (т. Е. Iis 200) /V3/Transport/DeviceService.svc/DeviceService (500 0 0) (т. Е. Ошибка iis 500)

примечание: виртуальный каталог, определенный в TRANSPORT и V3.V3 работает нормально, используя .net, в отличие от классического asp для аутентификации.

ЖУРНАЛ СОБЫТИЙ: Сбой инициализации шаблонного постоянного кэша для «транспорта» пула приложений из-за следующей ошибки: Не удалось создать подкаталог дискового кэшадля пула приложений.Данные могут иметь дополнительные коды ошибок.

Похоже, что эта ссылка предлагает исправление, но многие пути DIR и ссылки в "appcmd" не существуют.

_ http://theether.net/kb/100127

1 Ответ

1 голос
/ 10 августа 2011

REF _ http://theether.net/kb/100127

загрузить компакт-диск с приглашением cmd в C: \ Windows \ System32 \ inetsrv введите: список конфигурации appcmd -section: system.webServer / asp и отобразится следующий путь: c: \ inetpub \ conf \temp \ ASP скомпилированные шаблоны проверить путь существует (он есть) Проверьте, есть ли у NETWORK SERVICE разрешения на доступ к «ASP скомпилированным шаблонам». Если не из appcmd, выполните

icacls "c: \ inetpub \ conf \ temp \ ASP CompiledШаблоны "/ grant" СЕТЕВАЯ СЛУЖБА: (OI) (CI) (M) "

должно прочитать" успешно обработано 1 файл "

перезапущен пул приложений.

THE"Произошла ошибка InvalidSecurityAn при проверке безопасности для сообщения «проблема по-прежнему сохраняется, но ошибка« НЕ МОЖЕТ СОЗДАТЬ КЭШ SUB-DIRECORY .... »из журнала событий больше не возникает.

Извините, другое обновление.Изменение разрешения сетевой службы НЕ УДАЛЕНО решить проблему, переход на ПОМОЩЬ ПРИЛОЖЕНИЯ ПО УМОЛЧАНИЮ решил проблему.

Наконец-то появился лидер.Рассмотрено:

  1. ServiceSecurityAudit установлен в поведении службы._ http://intrepiddeveloper.wordpress.com/2008/08/07/security-event-logging-auditing/#
  2. Журналы IIS (просто отображается неспецифическая ошибка 500).
  3. Включена трассировка ошибок (также отображается ошибка 500).
  4. Пользовательские ошибки были отключены
  5. Дружественные сообщения IE были отключены
  6. На стороне клиента Asp и отладка на стороне сервера на
  7. Работа ProcessMon, ошибок нет.
  8. Web.config httpErrors errorMode = "Подробно" /> +

ServiceSecurityAudit обнаружил, что "ссылка на объект не установлена ​​на экземпляр объекта", поэтому похоже, что в нашем приложении есть ошибка.


Последующие действия (17/08/11):

Аудит службы безопасности, задокументированный здесь:

http://intrepiddeveloper.wordpress.com/2008/08/07/security-event-logging-auditing/

Был ключ для насчтобы решить эту проблему.Обнаружена ошибка ссылки на объект, которая указывает на несогласованность бизнес-объектов и библиотек доступа к данным.При использовании CLASSIC ASP для связи с API WCF.NET с использованием AUTHENTICATION TRANSPORT не было абсолютно никаких указаний на эту ошибку до тех пор, пока аудит службы безопасности не был включен в файл поведениеiour.config в развертывании WCF.

* RESOLVED *

...