Classic asp "Произошла ошибка при проверке безопасности сообщения." Безопасность на транспортном уровне iis7

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

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

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

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

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

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

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

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

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

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

ИЗМЕНЕНО, ЧТОБЫ ДОБАВИТЬ СЛЕДУЮЩЕЕ ОБНОВЛЕНИЕ:

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

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

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

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

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

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

_http: //theether.net/kb/100127

1 ответ

Решение

REF _http://theether.net/kb/100127

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

icacls "c: \ inetpub \ conf \ temp \ ASP Compiled Templates" / grant "СЕТЕВАЯ СЛУЖБА:(OI)(CI)(M)"

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

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

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

Извините, еще одно обновление. Изменение разрешения сетевой службы НЕ УДАЛЕНО решить проблему, переход на DEFAULT APP POOL решил проблему.

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

  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.

* РАЗРЕШЕНО *

Другие вопросы по тегам