RE: Logged WSE 2.0 error: WSE350
- From: stcheng@xxxxxxxxxxxxxxxxxxxx (Steven Cheng[MSFT])
- Date: Fri, 20 Oct 2006 10:07:06 GMT
{\rtf1\ansi\ansicpg936\deff0\deflang1033\deflangfe2052{\fonttbl{\f0\fnil\fprq2\fcharset0 MS Sans Serif;}}
\viewkind4\uc1\pard\lang2052\f0\fs20 Thanks for your quick response Robbert,
\par
\par AS for the WSE350 exception, it is thrown from the WSE 2.0 DIMO attachment's deserialize code as the callstack you provided as indicated. It is the "Microsoft.Web.Services2.Dime" class's "close" method that throw this exception. In this method, it has the following code logic:
\par
\par ** check if the the upstream code has marked the message as arriving end
\par
\par ** if marked as end, it will compare the current readed bytes length with the message's content lengh field(get from the DIME message).
\par
\par ** if the value mismatch, it will report the exception as you encountered.
\par
\par Here is the disassembled code through reflector:
\par
\par ============================
\par internal void Close(bool endOfMessage)
\par \{
\par if (!this.m_closed)
\par \{
\par this.m_closed = true;
\par if (this._mode == FileAccess.Read)
\par \{
\par if (this.m_bytesReadWritten == this.m_contentLength)
\par \{
\par if (!endOfMessage)
\par \{
\par return;
\par \}
\par return;
\par \}
\par throw new DimeFormatException(SR.GetString("WSE350", new object[] \{ this.m_id, this.m_contentLength \}));
\par \}
\par if (this._mode == FileAccess.Write)
\par \{
\par if (this.m_chunked)
\par \{
\par this.WriteChunkedPayload(true, endOfMessage);
\par \}
\par else if (endOfMessage && !this.m_endOfMessage)
\par \{
\par this.WriteMessageEndRecord();
\par \}
\par else if (this.m_contentLength == 0)
\par \{
\par this.WriteHeader(true, (long) 0);
\par \}
\par \}
\par \}
\par else if ((endOfMessage && !this.m_endOfMessage) && (this._mode == FileAccess.Write))
\par \{
\par this.WriteMessageEndRecord();
\par \}
\par \}
\par =================================================
\par
\par Therefore, I think the code logic here is very straightforward, also I don't think it is your application's code logic that will cause this error. Very likely that the DIME message's content has been corrupted over the wire.
\par
\par
\par Sincerely,
\par
\par Steven Cheng
\par
\par Microsoft MSDN Online Support Lead
\par
\par
\par This posting is provided "AS IS" with no warranties, and confers no rights.
\par }
- Follow-Ups:
- RE: Logged WSE 2.0 error: WSE350
- From: Robbert van Geldrop
- RE: Logged WSE 2.0 error: WSE350
- References:
- RE: Logged WSE 2.0 error: WSE350
- From: Steven Cheng[MSFT]
- RE: Logged WSE 2.0 error: WSE350
- From: Robbert van Geldrop
- RE: Logged WSE 2.0 error: WSE350
- Prev by Date: RE: Logged WSE 2.0 error: WSE350
- Next by Date: RE: Logged WSE 2.0 error: WSE350
- Previous by thread: RE: Logged WSE 2.0 error: WSE350
- Next by thread: RE: Logged WSE 2.0 error: WSE350
- Index(es):
Loading