WindowsPhone7アプリと共有するコードを使用したMonoTouchプロジェクトがあります。この共有コードは、SLSvcUtil.exeを使用して生成されたRIAドメインサービス(/ Soapエンドポイントを使用)のWCFプロキシを作成します。コードは次のようになります。
BasicHttpBinding binding = new BasicHttpBinding();
EndpointAddress address = new EndpointAddress("http://someurl/someservice.svc");
var client = new MyDomainServiceSoapClient(binding, address);
client.CookieContainer = _cookieContainer; // <-- EXCEPTION here
このコードはWP7で機能しますが、MonoTouchでは失敗し、理由がわかりません。私がMonoTouchで得る例外は次のとおりです。
System.InvalidOperationException: Unable to set the CookieContainer.
Please make sure the binding contains an HttpCookieContainerBindingElement.
at MyDomainServiceSoapClient.set_CookieContainer
CookieContainerを設定する前に次のオプションを試しましたが、それでも同じエラーが発生します。
binding.EnableHttpCookieContainer = true;
binding.AllowCookies = true;
binding.CreateBindingElements()
.Add(new HttpCookieContainerBindingElement()); // ??
更新:CustomBindingを手動で作成し、HttpCookieContainerBindingElementを追加しようとしましたが、これも機能しません。
何か案は?MonoTouchサイトによると、WCFの実装は「実験的」であるとのことですが、これは現在のバージョンのMonoTouchの制限でしょうか。