2011-10-10 69 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

相關問題