2013-11-08 4 views
1

Я пытаюсь создать прокси-сервер службы для службы SOAP, открытой другим объектом. После запуска:Ошибка при запуске SvcUtil.exe Против службы WSDL

svcutil.exe https://<domain-omitted>/feed30/clientdataservice.asmx?wsdl 

Я получаю следующее сообщение об ошибке:

Attempting to download metadata from 'https://<domain- 
omitted>/feed30/clientdataservice.asmx' using WS-Metadata Exchange or DISCO 
Generating files... 
Warning: No code was generated. 
If you were trying to generate a client, this could be because the metadata documents did not contain any valid contracts or services or because all contracts/services were discovered to exist in /reference assemblies. Verify that you passed all the metadata documents to the tool. 

Warning: If you would like to generate data contracts from schemas make sure to use the /dataContractOnly option. 

я видел в прошлом, что это может быть связано с неспособностью коммунальных услуг, чтобы получить доступ на все пути Xmlns в WSDL. Это:

xmlns:s="http://www.w3.org/2001/XMLSchema" 
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" 
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" 
xmlns:s2="http://microsoft.com/wsdl/types/" 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" 
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 

только один включен в операторе импорта в WSDL является XMLNS: s2 = «http://microsoft.com/wsdl/types/»

Я не могу найти информацию что я когда-то видел, что вы можете вручную загрузить каждый документ схемы и предоставить его в качестве параметра утилите svcutil. Я на правильном пути, или я должен искать где-то еще?

Любая помощь приветствуется.

+2

если вы можете получить сам wsdl через веб-браузер, сохраните его как файл и запустите файл svcutil.exe. Любой импорт? сохраните их и настройте wsdl, чтобы указать на локальные файлы. –

+0

Спасибо за отзыв. Один сомнительный импорт: xmlns: s2 = "http://microsoft.com/wsdl/types/". Если вы перейдете к этому URL-адресу, там ничего нет. Есть ли способ обхода такой ситуации? – Nate222

+0

URI пространства имен, используемые в документе WSDL, НЕ представляют URL-адреса. Как и любой другой язык, они являются «уникальными» строками, помещенными в контейнер документов, чтобы предотвратить столкновение типов, определенных внутри, с другими документами, которые хотят указывать одни и те же типы, но из другого пространства имен. –

ответ

2

Комментарий от пользователя Per MarvinSmit, я вручную загрузил данные WSDL в локальный файл. Я нашел ссылку на 'http://microsoft.com/wsdl/types/' через Bing здесь, 'http://msdn.microsoft.com/en-us/library/jj675594(v=office.12).aspx'. Я загрузил его в собственный .xsd-файл. Затем я заменил ссылку на импорт в локальном WSDL как локальный файл XSD. Ran svcutil указал на мой локальный файл WSDL и poof, он сгенерировал прокси-сервер, который сработал.

Смежные вопросы