Есть ли способ вызвать веб-сервис, файл asmx которого удален? - PullRequest
0 голосов
/ 14 мая 2018

У меня есть сервер IIS, который запускает приложение, содержащее несколько веб-сервисов. Для каждого веб-сервиса существует файл .asmx. По какой-то причине я вынужден ограничить доступ к веб-службам, поэтому я удалил некоторые файлы asmx. Теперь мой вопрос: может ли клиент по-прежнему вызывать все веб-сервисы даже без файла asmx? (Я не изменил код, просто удалил .asmx файлы)

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Файл ASMX служит связующим звеном между контрактом и его реализацией. Клиент при нажатии ASMX, соответствующий обработчик IIS вызывает базовый класс для запуска методов. Удаление этой привязки делает службу недоступной.

Для правильного решения, выполните следующие действия: - В общем, вам нужно определить, кто из всех клиентов может получить доступ к вашему веб-сервису. После этого вам потребуется механизм для предоставления им файла WSDL, чтобы они могли генерировать свои прокси-классы.

После этого отключите обнаружение WSDL, выполнив шаги Отключите страницу справки службы , удалив протокол документации. После этого ни один клиент не может получить WSDL и, следовательно, какие-либо обновления (даже существующие проверенные клиенты)

Если вы хотите реализовать выборочную доступность, вы должны включить безопасность на основе заголовка SOAP с помощью политики WS-Security.

Обратите внимание, что технологии WS- * и ASMX в настоящее время считаются устаревшими и не поддерживаются Microsoft. Пожалуйста, обновитесь до WCF / WebAPI.

0 голосов
/ 14 мая 2018

Нельзя использовать код без файла asmx. IIS не знает, какой класс использовать для реализации службы.

Вам необходимо заново создать файл asmx.Их содержание довольно просто.Это всего лишь одна строка типа

<%@ WebService Language="C#" CodeBehind="ASWBW_002.asmx.cs" Class="P0300_GUI.Interfaces.ASWBW_002" %>

Все, что вам нужно, это имя реализующего класса, включая пространство имен.Обычно это имя файла и части пути.

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