C# - DateTimeInvalidLocalFormat

本文关键字:DateTimeInvalidLocalFormat | 更新日期: 2023-09-27 18:07:38

我使用。net 4.0并使用ChannelSink, ServerSink和ClientSink类。创建该程序是为了在两个接口(远程和本地)之间传递消息。我有4种信息

3的消息工作正常(他们不包含DateTime数据成员)。

我遇到了一个问题:在特定类型的消息(它确实包含DateTime数据成员)中,每当我尝试传递消息时,接收器都会尝试反序列化消息-但失败的消息如下:

错误:

管理调试助手'DateTimeInvalidLocalFormat'已检测到在"C:'Program Files'IIS Express'iisexpress.exe"中出现问题。

附加信息:UTC日期时间正在被转换为文本仅适用于本地时间的格式。这可能发生在DateTime。使用'z'格式说明符的ToString,它将在输出中包含本地时区偏移量。在这种情况下,也一样使用'Z'格式说明符,它指定UTC时间,或者使用'o'格式字符串,这是持久化DateTime的推荐方式在文本。当传递要序列化的DateTime时也会发生这种情况XmlConvert或DataSet。如果使用XmlConvert。传入ToStringXmlDateTimeSerializationMode。正确序列化的RoundtripKind。如果使用DataSet,将dataccolumn对象上的DateTimeMode设置为DataSetDateTime.Utc .

每当我禁用托管调试助手时,我都会收到此消息:

System.Security。SecurityException: Request failed

服务器堆栈跟踪:at System.Array。InternalCreate (Void *应用,Int32* pLengths, Int32*

pLowerBounds) at System.Array。创建实例(Type elementType, Int32)长度)System.Runtime.Serialization.Formatters.Soap.ObjectReader.ParseArray (ParseRecord公关)System.Runtime.Serialization.Formatters.Soap.ObjectReader.ParseObject (ParseRecord公关)System.Runtime.Serialization.Formatters.Soap.ObjectReader.Parse (ParseRecordpr)System.Runtime.Serialization.Formatters.Soap.SoapHandler.StartChildren ()在System.Runtime.Serialization.Formatters.Soap.SoapParser.ParseXML ()System.Runtime.Serialization.Formatters.Soap.ObjectReader.Run ()System.Runtime.Serialization.Formatters.Soap.ObjectReader.Deserialize (HeaderHandlerISerParser

serParser)System.Runtime.Serialization.Formatters.Soap.SoapFormatter.Deserialize(流serializationStream,

HeaderHandler handler)System.Runtime.Remoting.Channels.CoreChannel.DeserializeSoapRequestMessage(流

inputStream, Header[] h, Boolean bStrictBinding) atSystem.Runtime.Remoting.Chanels.SoapServerFormatterSink.ProcessMessage

IServerChannelSinkStack sinkStack, IMessage requestMsg,ittransporttheaders请求头部,流

requestStream IMessage&responseMsg ITransportHeaders&responseHeaders Stream&responseStream)

异常重新抛出在[0]:atSystem.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessageIMessage reqMsg, IMessage

retMSg)System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke (MessageData&msgData, Int32类型). .(我的一些文件)。失败的行动第一个失败的权限类型是:System.Security.PermissionSet需求是:

唯一允许的权限是:

导致失败的方法是:System.Runtime.Remoting.Channels.ServerProcessingProcessMessage (System.Runtime.Remoting.Channels.IServerChannelSinkStackSystem.Runtime.Remoting.Messaging.IMessage,System.Runtime.Remoting.Channels。ITransportHeaders System.IO.Stream,时System.Runtime.Remoting.Messaging.IMessage ByRef,时System.Runtime.Remoting.Channels.ITransportHeaders ByRef,时System.IO.Stream ByRef)

我想这与它无关,因为其他三种消息工作得很好。此外,只要我调用接收器而不传递消息(仅用于存根方法),它就可以工作。我的问题是,该怎么办?我尝试添加到[XmlAttribute]标签的DataType="日期" -但它没有工作。

C# - DateTimeInvalidLocalFormat

在我的例子中,我使用StringBuilder对象来存储XML文件。AppendLine属性在解析日期掩码时似乎有问题。经过一番挖掘,我发现这篇文章建议更新掩码https://msdn.microsoft.com/en-us/library/ms172213(v=vs.110).aspx

唯一的问题是这个XML文件应该具有特定的日期格式(掩码),所以我们最终忽略了这个问题。在我们的"发布"构建中,这似乎不是一个问题,但每当我们试图"调试"时,它就会出现。我们只是点击"继续"来强制它,它就通过了。

如果你能够更新掩码,这可能会解决你的问题,如果你不能,然后尝试你的代码在"发布"模式,没有断点,看看它是否挂起。

相关文章:
  • 没有找到相关文章