0

我正在尝试让我的设备与托管在 Azure 中的 WCF 服务一起工作,因此我按照文章使用 .NET Micro Framework 连接设备向我展示了如何做到这一点。

我遇到问题的地方是当我尝试运行MFSvcUtil.exe以生成代理代码时,我可以在设备端从NETMF访问 WCF 服务方法。

如果我尝试跑步

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

我得到这个输出,后面跟着一个StackOverflowException我找不到堆栈跟踪,请参阅http://localhostr.com/file/QCEVawT/log.txt(由于字符限制而上传)。

这是我完整的 WSDL: http: //pastebin.com/M9KVYD0e

我该如何解决这个问题?

4

1 回答 1

1

我想知道您是否使用.NET 4.5。该singlewsdl选项是 .NET 4.5 中的一项新功能,但默认情况下,Windows Azure 尚未安装 .NET 4.5。如果您想使用 .NET 4,请使用?wsdl而不是?singlewsdl.

此外,还请确保您具有该useRequestHeadersForMetadataAddress行为,否则 WSDL 可能无法按预期工作。您可以检查FIX:WCF WSDL 文档中的 URI 指的是不可访问的内部实例,而不是指 Windows Server 2003、Windows XP、Windows Vista 和 Windows Server 2008 中的 .NET Framework 3.0 中预期的负载平衡器以获取更多信息。不过,不需要安装此修补程序,因为此功能已内置到 .NET 4 中。

于 2012-04-19T07:30:19.837 回答