Ошибка (StackruException) при создании прокси WCF для.NET Micro Framework DPWS с использованием MFSvcUtil.exe
Я пытаюсь заставить мое устройство работать с моей службой WCF, размещенной в Azure, поэтому я следовал статье " Подключенные устройства с использованием.NET Micro Framework", в которой рассказывается, как это сделать.
Дело в том, что у меня возникают проблемы, когда я пытаюсь бежать MFSvcUtil.exe
чтобы создать прокси-код, чтобы я мог получить доступ к методам службы WCF из NETMF на стороне устройства.
Если я попытаюсь бежать
C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.1\Tools\MFSvcUtil.exe" http://myservice.cloudapp.net/TrackingService.svc?singlewsdl /V
Я получаю этот вывод:
**MfSvcUtil.exe (c) Microsoft 2008
Reading WSDL file: http://myservice.cloudapp.net/TrackingService.svc?singlewsdl
Could not find schema information for the element 'HTML'.
Severity: Warning
Exception: System.Xml.Schema.XmlSchemaValidationException: Could not find schema information for the element 'HTML'.
SourceUri: http://myservice.cloudapp.net/TrackingService.svc?singlewsdl
LineNumber: 1
Position: 2
StackTrace:
Program Error: The WSDL file is not compatible.**
Теперь, если я попытаюсь запустить с обычным файлом WSDL, как
MFSvcUtil.exe" http://myservice.cloudapp.net/TrackingService.svc?WSDL /V
Я получаю этот вывод с последующим StackruException
что я не могу найти трассировку стека, см. http://localhostr.com/file/QCEVawT/log.txt
(загружено из-за ограничения количества символов).
И это мой полный WSDL: http://pastebin.com/M9KVYD0e
Как мне обойти эту проблему?
1 ответ
Я хотел бы знать, используете ли вы.NET 4.5. singlewsdl
опция - это новая функция в.NET 4.5, но по умолчанию в Windows Azure не установлена .NET 4.5 (пока). Если вы хотите использовать.NET 4, пожалуйста, используйте ?wsdl
вместо ?singlewsdl
,
Кроме того, пожалуйста, убедитесь, что у вас есть useRequestHeadersForMetadataAddress
поведение, иначе WSDL может работать не так, как ожидалось. Вы можете проверить FIX: URI в документе WCF WSDL ссылаются на недоступные внутренние экземпляры, а не на балансировщик нагрузки, как ожидается в.NET Framework 3.0 в Windows Server 2003, Windows XP, Windows Vista и Windows Server 2008 для получения дополнительной информации. Однако устанавливать исправление не нужно, поскольку эта функция уже встроена в.NET 4.