我在monotouch上没有找到任何关于wcf支持的东西。我需要为iphone创建具有用户身份验证的web服务。我想使用wshttpbinding。
monotouch是否支持wcf wshttpbinding?如果没有,我如何创建web服务与身份验证,服务器端在窗口(C#),客户端在iphone (单点触控)
非常感谢
发布于 2011-04-16 23:07:37
Mono目前不支持WSHttpBinding,这是一个正在进行的工作,并且支持非常参差不齐。
您可以在HTTPS (来自.NET 1.0和.NET 2.0的web服务堆栈)上使用普通SOAP。
但是,由于您才刚刚开始,所以最好使用带有JSon或XML返回值的REST服务。许多人现在使用Json作为这种连接的通用语言,因为它有一个额外的优势,你可以使用相同的桥来创建基于HTML的应用程序,因为Json输出可以直接输入到浏览器上的javascript中。
对于服务器,您可以使用类似于ServiceStack的内容:
http://www.servicestack.net
对于客户端,您可以使用System.Json手动解析Json,这是一个非常低级的基本堆栈,也可以使用Newtonsoft的Json解析器,它带有完整的反序列化程序和对象映射器。
发布于 2011-04-28 10:22:32
在Monotouch的最新版本中,它确实可以工作。如果您有Visual Studio,则需要使用Windows PC上的Silverlight 4.0 SDK生成WCF类。
下面是我用来生成TimeSheet类的代码(在Windows的CMD shell中运行):
slsvcutil.exe http://localhost/QQQQQ/Timesheet.svc?wsdl /namespace:"*,General" /d:z:\desktop /noConfig /ser:DataContractSerializer然后将其复制到您的Monotouch项目中,并像这样调用它:
BasicHttpBinding binding = new BasicHttpBinding (settings.WCFBasicHttpSecurityMode ());
var svc = new TimesheetServiceClient (binding, new EndpointAddress (settings.AddressServiceUrl ()));请注意,所有服务调用都是异步的。你需要像这样订阅他们的事件回调:
svc.GetTimesheetsCompleted += GetTimeSheetsComplete;发布于 2012-09-02 02:03:36
我也在尝试将WCF实现到MonoDroid中。我认为它和MonoTouch没有太大的区别。经过研究,除了BasicHttpBinding之外,我找不到任何其他绑定模式的支持。
老实说,我一点也不擅长WCF,所以我只是随机地尝试了一些方法。我可以使用string和byte[]等从服务器获取消息,但是当我想上传大量数据时,例如。图片或音频,上传包含大byte[]的消息必须小于8192字节。这会导致我的上传失败。
现在我必须想别的办法来解决手机上传大文件的问题。
如果所有的操作都不能完全在WCF编码中实现,这真的是一个很大的遗憾和问题。
希望Mono能改进它。如果有任何帮助,欢迎和感谢。
https://stackoverflow.com/questions/5449504
复制相似问题