在 Metro 风格应用程序中,我想添加服务参考(wikispaces)。VS2012 正确发现服务:
不幸的是,生成的Reference.cs不提供服务中的任何方法:
为什么会发生?该服务不兼容吗?如何访问服务?
编辑:它是地铁风格的应用程序,所以应该生成异步方法。但它们不是生成的。
在 Metro 风格应用程序中,我想添加服务参考(wikispaces)。VS2012 正确发现服务:
不幸的是,生成的Reference.cs不提供服务中的任何方法:
为什么会发生?该服务不兼容吗?如何访问服务?
编辑:它是地铁风格的应用程序,所以应该生成异步方法。但它们不是生成的。
我尝试了更多,但似乎不可能让它生成异步方法。找不到确切的原因。也许它与 WSDL 相关。
无论如何,由于您不拥有该服务,我只能想到一种方法。在它前面创建您自己的中间 WCF 4.5 服务并从应用程序中使用它。
这将起作用,因为:
我还考虑过为完整的框架项目生成 wikipages 代理,然后将其移动到您的 Win8 客户端,但这需要更正大量生成的代码才能使其编译(至少)。
我对 VS2012 和 WikiSpaces 也有同样的问题。我不知道到底出了什么问题,但是如果您从命令行构建这些服务,它就可以正常工作。
如果您使用消息(评论)API,您将遇到 WikiSpaces 的第二个问题。他们弄乱了 WSDL 中的某些类型,不小心将 body 和 html 成员设置为 int 而不是 string。您需要编辑 WSDL 并从中构建,或者(更快)编辑从 WSDL 生成的 MessageService.cs 并确保 body 和 html 是字符串而不是整数(然后重新编译它)!
您是以管理员身份运行 VS 还是以普通用户身份运行 VS?添加服务引用时,我遇到了类似的问题并以管理员身份运行 VS 解决了它。
pwas, in cmd.exe try this command
C:\Program Files (x86)\Microsoft Visual Studio 12.0>wsdl /out:C:\wiki.cs http://www.wikispaces.com/page/api?wsdl"