2011-10-10 89 views
3

我们正在向Windows Mobile客户端添加功能以将数据发送到.NET服务。不幸的是,svcutil.exe创建的.cs类生成Compact Framework的不可用代码。 (该名称不存在于紧凑框架中)Compact Framework中的System.Runtime.Serialization.DataContractAttribute是否有变通或替代(Windows Mobile)

是否有更换或第三方类或解决方法或任何其他方式让移动应用程序连接到服务?

我们可以将API /服务更改为Compact-Framework友好的。我们对CF游戏(以及.NET一般)并不熟悉。我们不确定允许CF客户端的适当方式 - “开箱即用”方法适用于桌面应用程序,但可惜,不适用于移动设备。

编辑

我尝试使用netcfSvcUtil.exe代替,但得到一个错误(这我不svcutil.exe的获得)。我想这意味着创建的服务与Compact Framework不兼容?

我对此非常不了解 - 但我认为传递数据的规格在平台之间没有相关性,并且可以在拖车之间计算出运输。我想这是天真的...

有关如何解决此问题的任何建议?我是否需要将服务端改为移动/紧凑框架友好?

编辑

错误消息我得到的是:

Error: An Error occurred in the tool.

Error: Error in the application

+0

你用netcfsvcutil得到了什么错误?另外,如果我正确回复,它只能使用基本的http绑定。 – tcarvin

+0

错误没用 - 没有任何信息。我会很快发布。 – Tim

回答

1

检查wsdl中的soap版本,不确定,但我记得在CF中使用SOAP 1.2时出现问题。如果是这样的话,只需强制WCF在配置文件中使用1.1。

无论如何,发布错误消息。你描述的问题听起来很奇怪,因为通常当wsdl文件出现问题时,SVC不会尝试生成任何代码。你确定你正在使用svc来生成CF代码吗? 您是否尝试过在Visual Studio中使用添加服务引用?大多数时候这对我来说很好。

编辑:我已经读过您的问题了。 - 无法使用'normal'svcutil.exe生成CF代码,请使用netcfsvcutil.exe版本 - 我不推荐使用Visual Studio Add Service Reference,而是使用Visual Studio Add Service Reference,而不是使用命令行。 - 是的,Web服务是独立于技术并由CF支持的,只要确保使用CF支持的绑定(例如basicHttpBinding)和CF支持的soap版本即可。

WCF < - > Compact Framework场景在开始时可能会让人困惑,但它确实很好。

+0

+1 netcfsvcutil也不起作用 - 它提供了无用的错误消息。但是,右击并添加服务引用工作得很好。 – Tim

+1

我发现使用netcfsvcutil从命令行中唯一有用的方案是引用具有暴露接口的类型定义的库。 但是,在类型定义中使用CF之外的任何内容都是不可能的,这很常见。 对于大多数情况下,我会推荐使用VS Wizard,因为它更加方便,并且使界面更新更加轻松快捷。 – mikus

2

正如我在我的评论中提到,第一件事就是要确保服务我们建立了基本的HTTP绑定,使其CF友好。

+0

好的,谢谢。我猜测情况并非如此。这是一些wsdl,不会与CF一起工作。不知道如何纠正。我想这是一个完全不同的问题。 – Tim

+0

它是你的WCF服务吗?如果是这样,通常可以在配置文件中添加一个ednpoint。 – tcarvin

+0

是的,这是一个WCF服务。我会告诉实施该服务的人......感谢 – Tim

相关问题