svcutil.exe генерирует ошибки, в то время как wsdl.exe работает без - PullRequest
2 голосов
/ 22 сентября 2011

Я пытаюсь создать веб-сервис, соответствующий WSDL, по адресу:

http://assets.cdn.gamigo.com/xml/connection-service/1.0.10/account.wsdl

Когда я запускаю с svcutil.exe, как это:

svcutil.exe /language:C# /out:GamigoServices.cs http://assets.cdn.gamigo.com/xml/connection-service/1.0.10/account.wsdl

Я получаю эти ошибки:

Error: Cannot import wsdl:binding
Detail: The given key was not present in the dictionary.
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://connection.ga
mes.gamigo.com/v_1_0']/wsdl:binding[@name='DefaultAccountServiceServiceSoapBindi
ng']


Error: Cannot import wsdl:port
Detail: There was an error importing a wsdl:binding that the wsdl:port is depend
ent on.
XPath to wsdl:binding: //wsdl:definitions[@targetNamespace='http://connection.ga
mes.gamigo.com/v_1_0']/wsdl:binding[@name='DefaultAccountServiceServiceSoapBindi
ng']
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://connection.ga
mes.gamigo.com/v_1_0']/wsdl:service[@name='AccountService']/wsdl:port[@name='Acc
ountServicePort']

Я также попробовал инструмент, Wscf: Blue, который выдает мне те же ошибки (это плагин WCF VS, который, вероятно, сделает еще большедля меня однажды я пройду этот шаг).

С другой стороны, если я использую wsdl.exe (чего я не хочу, потому что я хочу использовать WCF, и, насколько я понимаю, я нужно , чтобы использовать svcutil.exe для WCF, но я просто попытался wsdl.exe в моих попытках сузить источник проблем), например:

wsdl.exe  http://assets.cdn.gamigo.com/xml/connection-service/1.0.10/account.wsdl /serverInterface

ошибок нет.

Я пробовал разные вещи с локальными копиями WSDL (и типами .xsd, на которые он ссылается), комментировал разделы и т. Д., Чтобы сузить проблему.Тем не менее, это действительно сводится к тому, к чему относится сообщение об ошибке, к определению этой привязки.Я также погуглил, но несколько ссылок на такого рода ошибки не помогают вообще.Кроме того, я особенно озадачен тем фактом, что wsdl.exe кажется вполне подходящим для этого WSDL.Я также использовал http://xmethods.net/ve2/WSDLAnalyzer.po# для проверки WSDL, ошибок не было.

Итак, теперь я нахожусь в точке, где я действительно не знаю, как поступить.Поскольку весь вопрос несколько критичен по времени - к следующей неделе я действительно должен начать с реализации - я мог бы в конечном итоге использовать код, сгенерированный wsdl.exe и перейти на более старую технологию, устаревшую MS, но по нескольким (очевидным) причинамЯ бы предпочел не идти этим путем.Так что если у кого-нибудь есть идеи, как заставить svcutil.exe работать с этим, я был бы благодарен.Я мог бы добавить, что хотя я не могу изменить определение, я мог бы убедить издателя этого WSDL выполнить определенные изменения или, по крайней мере, опубликовать вторую версию для моих целей.

Большое спасибо,

Макс

Вена,

Австрия

Ответы [ 2 ]

1 голос
/ 28 июля 2017

step1. Смотрите на свой файл WSDL

step2. убедитесь, что wsdl: portType «выровнен» с wsdl: binding (то есть все операции определены соответствующим образом в portType и binding).

step3. Спасибо за лучший совет, когда-либо имевший место при возникновении ошибок svcUtil, таких как «указанный ключ отсутствует в словаре»: -)

0 голосов
/ 22 сентября 2011

Svcutil.exe используется для службы WCF.Если это веб-сервис wsdl.exe будет работать нормально.Я думаю, что вы используете svcutil.exe для веб-службы, поэтому он выдает ошибку.

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