2012-04-17 24 views
1

SOAP Webサービスを別のアプリケーションに呼び出すアプリケーションがあります(ここではJSONはありません)。いくつかの回答がうまく戻ってきます。問題は、呼び出しの1つがOKになったが、応答がSystem.DateTime.ParseExactエラーを返すことです。 IはSOAPUIに日付形式をチェックし、それはのように戻ってきた:エラーメッセージである2012-02-05-05:00Monotouch iOSのSOAP応答でSystem.DateTime.ParseExactエラーが発生しました

:System.DateTime.ParseExact(可能System.String S、[]の形式を可能System.String、するIFormatProviderプロバイダで

、DateTimeStylesスタイル)[0x0005c] in /Developer/MonoTouch/Source/mono/mcs/class/corlib/System/DateTime.cs:1761 at System.DateTime.ParseExact(System.String s、System.String形式、IFormatProviderプロバイダー、DateTimeStylesスタイル)[0x0001c] /Developer/MonoTouch/Source/mono/mcs/class/corlib/System/DateTime.cs:1741 at System.DateTime.ParseExact(System.String s、System.String形式、IFormatProviderプロバイダー)[0x00000] in/System.Xml.Serialization.XmlCustomFormatter.FromXmlString(System.Xml.Serialization.TypeData型、System.String値)にある[Developer]/MonoTouch/Source/mono/mcs/class/corlib/System/DateTime.cs:927 [0x001d4] /Developer/MonoTouch/Source/mono/mcs/class/System.XML/System.Xml.Serialization/XmlCustomFormatter.cs:275 at System.Xml.Serialization.XmlSerializationReaderInterpreter.GetValueFromXmlString(System.String value、System.Xml)。 System.Xml.Serialization.XmlTypeMapping typeMap)[0x00047] /Developer/MonoTouch/Source/mono/mcs/class/System.XML/System.Xml.Serialization/XmlSerializationReaderInterpreter.cs:652 at System。 Xml.Serialization.XmlSerializationReaderInterpreter.ReadPrimitiveValue(System.Xml.Serialization.XmlTypeMapElementInfo elem)/Developer/MonoTouch/Source/mono/mcs/class/System.XML/System.Xml.Serialization/XmlSerializationReaderInterprの[0x0003e] eter.cs:638 at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadObjectElement(System.Xml.Serialization.XmlTypeMapElementInfo elem)[0x0003f] in /Developer/MonoTouch/Source/mono/mcs/class/System.XML/System.Xml .Serialization/XmlSerializationReaderInterpreter.cs:614 at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadMembers(System.Xml.Serialization.ClassMap map、System.Object ob、Boolean isValueList、Boolean readBySoapOrder)/ Developer/MonoTouch/Sourceの[0x0082c] /mono/mcs/class/System.XML/System.Xml.Serialization/XmlSerializationReaderInterpreter.cs:464 at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadClassInstanceMembers(System.Xml.Serialization.XmlTypeMapping typeMap、System.Object ob)[0x00000 ] /Developer/MonoTouch/Source/mono/mcs/class/System.XML/System.Xml.Serialization/XmlSerializationReaderInterpreter.cs:240 at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadClassInstance(System.Xml.Serialization.XmlTypeMapping、typeMap、Boolean isNullable、Boolean checkType)[0x000d5] in /Developer/MonoTouch/Source/mono/mcs/class/System.XML/System。/Developer/MonoTouch/Source/mono/mcsのXml.Serialization/XmlSerializationReaderInterpreter.cs:230 at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadObject(System.Xml.Serialization.XmlTypeMapping typeMap、Boolean isNullable、Boolean checkType)[0x00031] /class/System.XML/System.Xml.Serialization/XmlSerializationReaderInterpreter.cs:193 at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadClassInstance(System.Xml.Serialization.XmlTypeMapping、typeMap、Boolean isNullable、Boolean checkType)[0x00076] in /開発者/ MonoTouch/Source/mono/mcs/class/System.XML/System.Xml.Serialization/XmlSerializationReaderInterpreter.cs:220 at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadObject(System.Xml.Serialization.XmlTypeMapping、typeMap、Boolean isNullable、Boolean checkType)[0x00031] /Developer/MonoTouch/Source/mono/mcs/class/System.XML/Systemにあります。 Xml.Serialization/XmlSerializationReaderInterpreter.cs:193 at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadObjectElement(System.Xml.Serialization.XmlTypeMapElementInfo elem)[0x0005c] in /Developer/MonoTouch/Source/mono/mcs/class/System.XML/System.Xml。シリアル化/ XmlSerializationReaderInterpreter.cs:620 at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadMembers(System.Xml.Serialization.ClassMap map、System.Object ob、Boolean isValueList、Boolean readBySoapOrder)/ Developer/MonoTouch/Source /内の[0x005fb] System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadClassInstanceMembers(System.Xml.Serialization.XmlTypeMapping typeMap、System.Object ob)の[0x00000]で、モノ/ mcs /クラス/ System.XML/System.Xml.Serialization/XmlSerializationReaderInterpreter.cs:434 /Developer/MonoTouch/Source/mono/mcs/class/System.XML/System.Xml.Serialization/XmlSerializationReaderInterpreter.cs:240 at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadClassInstance(System.Xml.Serialization.XmlTypeMapping typeMap、 Boolean isNullable、Boolean checkType)/Developer/MonoTouch/Source/mono/mcs/class/System.XML/System.Xmlの[0x000d5]です。シリアル化/ XmlSerializationReaderInterpreter.cs:230 at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadObject(System.Xml.Serialization.XmlTypeMapping、typeMap、Boolean isNullable、Boolean checkType)/ Developer/MonoTouch/Source/mono/mcs/classの[0x00031]/Developer/MonoTouch/Source/mono/System.XML/System.Xml.Serialization/XmlSerializationReaderInterpreter.cs:193 at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadObjectElement(System.Xml.Serialization.XmlTypeMapElementInfo elem)[0x0005c] mcs/class/System.XML/System.Xml.Serialization/XmlSerializationReaderInterpreter.cs:620 at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadMembers(System.Xml.Serialization.ClassMap map、System.Object ob、Boolean isValueList、Boolean readBySoapOrder )/Developer/MonoTouch/Source/mono/mcs/class/System.XML/System.Xml.Serialization/XmlSerializatiの[0x005fb] onReaderInterpreter.cs:434 at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadMessage(System.Xml.Serialization.XmlMembersMappingMap)[0x0015a] in /Developer/MonoTouch/Source/mono/mcs/class/System.XML/System.Xml .Serialization/XmlSerializationReaderInterpreter.cs:154 at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadRoot()[0x0004c] in /Developer/MonoTouch/Source/mono/mcs/class/System.XML/System.Xml.Serialization/XmlSerializationReaderInterpreter。 cs:92 at System.Xml.Serialization.XmlSerializer.Deserialize(System.Xml.Serialization.XmlSerializationReaderリーダー)[0x0001c] in /Developer/MonoTouch/Source/mono/mcs/class/System.XML/System.Xml.Serialization /XmlSerializer.cs:361

答えて

0

私は(それは形式を示しXmlCustomFormatter.cs(githubの上で利用可能なソース)からライン#275です

case "date": return DateTime.ParseExact (value, "yyyy-MM-dd", null); 

...ここで、なぜ、間違えてる場合には、(注を参照)質問のように見えませんが、正しいですか間違っています)。

これは質問に記載された2012-02-05-05:00文字列と一致しません。これはあなたが現在発生している例外につながります。これはMonoのバグ、またはMicrosoftの実装が同じように動作する場合、呼び出しているWebサービスの問題です。

注:バグレポートはバック数年前、それは私がモノラルに複数のWebサービスプロジェクトを移植停止している私はこれを見てきましたhttp://bugzilla.xamarin.com

+0

お返事ありがとうございます。私は、アプリケーションのASP.NETバージョンがあり、私はこの問題がありません。正確に同じコードとWebサービス。これはMonoバグのようです。 – EICSB

+0

私はこれをC#コードでオーバーライドできる方法はありますか? – EICSB

0

で満たされます。私はMonoがMicrosoft .Netとは異なる動作をすることを確認できます。私はそれがバグかどうかはっきりしていませんが、多くのWebサービスは 'yyyy-mm-dd'以外の形式で日付を返しますが、いくつかは 'Z'などのタイムゾーン仕様を追加します。 MonoにSystem.DateTime.Parseを使用するようにパッチを当てることはできますが、カスタムMonoを使用するためにはこのために苦労する必要があります。

関連する問題