В настоящее время я пытаюсь получить доступ к базе данных Oracle 11g через PowerShell с помощью SOAP API. Первым делом я получил токен сеанса, который работал безупречно, но сейчас я пытаюсь выполнить запрос к БД, и я столкнулся с проблемой, заключающейся в том, что я не могу указать определение сервиса из желаемого WSDL.

Просматривая файл WSDL базы данных Oracle, я вижу несколько тегов wsdl:service, но когда я создаю новый интерфейс с помощью CMDLet New-WebServiceProxsy, мне удается получить доступ только к первому определению wsdl:service.

Чтобы показать вам, что я имею в виду:

<wsdl:service name="SAWSessionService">
<wsdl:port binding="sawsoap:SAWSessionService" name="SAWSessionServiceSoap">
<soap:address location="https://***:***/analytics/saw.dll?SoapImpl=nQSessionService"/>
</wsdl:port>
</wsdl:service>
[...]
<wsdl:service name="WebCatalogService">
<wsdl:port binding="sawsoap:WebCatalogService" name="WebCatalogServiceSoap">
<soap:address location="https://***:***/analytics/saw.dll?SoapImpl=webCatalogService"/>
</wsdl:port>
</wsdl:service>
[...]
<wsdl:service name="XmlViewService">
<wsdl:port binding="sawsoap:XmlViewService" name="XmlViewServiceSoap">
<soap:address location="https://***:***/analytics/saw.dll?SoapImpl=xmlViewService"/>
</wsdl:port>
</wsdl:service>

Я могу получить доступ к SAWSessionService без проблем, но когда я пытаюсь получить доступ к XmlViewService, по умолчанию это просто SAWSessionService, и я получаю все соответствующие методы.

Я попытался использовать параметр -Namespace, как это:

New-WebServiceProxy -Uri "https://***:***/analytics/saw.dll/wsdl/v6" -Namespace "XmlViewService"

но это тоже ничего не меняет.

Я также только что использовал интерфейс SOAP, используя расширение Postman, которое работало, так что это проблема со скриптом. Единственная разница была в том, что я использовал расположение службы для своих запросов, но New-WebServiceProxy, кажется, автоматически генерирует их.

Я что-то пропустил?

Я был бы очень признателен за любую помощь.

0