473,738 Members | 2,492 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

SP1 Problem SOAPException doesn't return quote and Umlaute correcty

Our web service was working fine until we installed .net Framework 1.1 service pack 1. Uninstalling SP1 is not an option because our largest customer says service packs marked as "critical" by Microsoft must be installed on their servers.

Now german Umlaute (ä, ü, ö) and quotes are returned incorrectly in SOAP fault responses.
This can be easily verified:

Implement the following in a web service method (just raises a SOAPException with a message text containing quote characters ("):

string errMsg = "Here is a \"quote\".";
throw new SoapException( errMsg,new XmlQualifiedNam e("Server.Probl em"));

The following SOAP response is created when calling this SOAP-Exception:

HTTP/1.1 500 Internal Server Error.
Server: Microsoft-IIS/5.1
Date: Fri, 03 Dec 2004 13:02:23 GMT
X-Powered-By: ASP.NET
X-AspNet-Version: 1.1.4322
Cache-Control: private
Content-Type: text/xml; charset=utf-8
Content-Length: 431

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelop e xmlns:soap="htt p://schemas.xmlsoap .org/soap/envelope/"
xmlns:xsi="http ://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http ://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
<faultcode>Serv er.Problem</faultcode>
<faultstring>He re is a &quot;quote&quo t;.</faultstring>
<detail />
</soap:Fault>
</soap:Body>
</soap:Envelope>

All though the encoding should be utf-8 and "& q u o t ;" is not correct. This worked fine in .net 1.1 without the SP1. The correct <faultstring> should be:
<faultstring>He re is a "quote".</faultstring>

This problem also occurs when using german Umlaute: f.e. with an exception message of "Fahrvergnügen" . It is converted incorrectly to <faultstring>Fa hrvergn&amp;#25 2;gen</faultstring>.

This is a serious problem for us, because in german and french many error messages will have special characters like ö,ä, é, à in them and these are not correctly processed.

Thanks for any help!
Dany
Nov 23 '05 #1
16 4922
Hi,

What you are describing is the use of encoded strings. These are, to my
knowlege, valid in XML and the responsibility of the parser to convert
properly.

What is the source of the problem, given that these are valid
representations of the data? Is the client not able to process these
properly as it should?

Regards

Dan Rogers
Microsoft Corporation

--------------------
Date: Sat, 4 Dec 2004 13:43:30 +0100
X-Newsreader: Groupwise 6.5
From: Dany <Da**@newsgroup s.com>
Subject: SP1 Problem SOAPException doesn't return quote and Umlaute correcty
Message-ID: <uC************ **@TK2MSFTNGP14 .phx.gbl>
Newsgroups: microsoft.publi c.dotnet.framew ork.webservices
NNTP-Posting-Host: adsl-62-167-138-146.adslplus.ch 62.167.138.146
Lines: 1
Path:
cpmsftngxa10.ph x.gbl!TK2MSFTFE ED02.phx.gbl!TK 2MSFTNGP08.phx. gbl!TK2MSFTNGP1 4
.phx.gbl
Xref: cpmsftngxa10.ph x.gbl
microsoft.publi c.dotnet.framew ork.webservices :7851
X-Tomcat-NG: microsoft.publi c.dotnet.framew ork.webservices

Our web service was working fine until we installed .net Framework 1.1
service pack 1. Uninstalling SP1 is not an option because our largest
customer says service packs marked as "critical" by Microsoft must be
installed on their servers.

Now german Umlaute (ä, ü, ö) and quotes are returned incorrectly in SOAP
fault responses.
This can be easily verified:

Implement the following in a web service method (just raises a
SOAPException with a message text containing quote characters ("):

string errMsg = "Here is a \"quote\".";
throw new SoapException( errMsg,new XmlQualifiedNam e("Server.Probl em"));

The following SOAP response is created when calling this SOAP-Exception:

HTTP/1.1 500 Internal Server Error.
Server: Microsoft-IIS/5.1
Date: Fri, 03 Dec 2004 13:02:23 GMT
X-Powered-By: ASP.NET
X-AspNet-Version: 1.1.4322
Cache-Control: private
Content-Type: text/xml; charset=utf-8
Content-Length: 431

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelop e xmlns:soap="htt p://schemas.xmlsoap .org/soap/envelope/"
xmlns:xsi="http ://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http ://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
<faultcode>Serv er.Problem</faultcode>
<faultstring>He re is a &quot;quote&quo t;.</faultstring>
<detail />
</soap:Fault>
</soap:Body>
</soap:Envelope>

All though the encoding should be utf-8 and "& q u o t ;" is not correct.
This worked fine in .net 1.1 without the SP1. The correct <faultstring>
should be:
<faultstring>He re is a "quote".</faultstring>

This problem also occurs when using german Umlaute: f.e. with an exception
message of "Fahrvergnügen" . It is converted incorrectly to
<faultstring>Fa hrvergn&amp;#25 2;gen</faultstring>.

This is a serious problem for us, because in german and french many error
messages will have special characters like ö,ä, é, à in them and these are
not correctly processed.

Thanks for any help!
Dany

Nov 23 '05 #2
Hi Dan

Yes, I think you're right. I went through the XML 1.0 Specs and it is correct XML as such.

The problem seems to be on the client side. We use MSXML-DOM to parse the SOAPFault, but when getting nodeValue it does not correctly convert these symbols to their wide string representation. Will have to look into that further and probably post it in the MSXML newsgroup if this is really the problem.

Do you think using a SOAPExtension to replace all the special chars with the "real" representation like they were before .net Framework Service Pack 1 would work? Or is the conversion done afterwards? This would give us the possibility to update only the server. Updating all clients is a huge enterprise with our biggest customer.

Thanks & Regards
Dany
Dan Rogers<da***@mi crosoft.com> 06.12.2004 21:42:15 >>>

Hi,

What you are describing is the use of encoded strings. These are, to my
knowlege, valid in XML and the responsibility of the parser to convert
properly.

What is the source of the problem, given that these are valid
representations of the data? Is the client not able to process these
properly as it should?

Regards

Dan Rogers
Microsoft Corporation

--------------------
Date: Sat, 4 Dec 2004 13:43:30 +0100
X-Newsreader: Groupwise 6.5
From: Dany <Da**@newsgroup s.com>
Subject: SP1 Problem SOAPException doesn't return quote and Umlaute correcty
Message-ID: <uC************ **@TK2MSFTNGP14 .phx.gbl>
Newsgroups: microsoft.publi c.dotnet.framew ork.webservices
NNTP-Posting-Host: adsl-62-167-138-146.adslplus.ch 62.167.138.146
Lines: 1
Path:
cpmsftngxa10.ph x.gbl!TK2MSFTFE ED02.phx.gbl!TK 2MSFTNGP08.phx. gbl!TK2MSFTNGP1 4
..phx.gbl
Xref: cpmsftngxa10.ph x.gbl
microsoft.publi c.dotnet.framew ork.webservices :7851
X-Tomcat-NG: microsoft.publi c.dotnet.framew ork.webservices

Our web service was working fine until we installed .net Framework 1.1
service pack 1. Uninstalling SP1 is not an option because our largest
customer says service packs marked as "critical" by Microsoft must be
installed on their servers.

Now german Umlaute (ä, ü, ö) and quotes are returned incorrectly in SOAP
fault responses.
This can be easily verified:

Implement the following in a web service method (just raises a
SOAPException with a message text containing quote characters ("):

string errMsg = "Here is a \"quote\".";
throw new SoapException( errMsg,new XmlQualifiedNam e("Server.Probl em"));

The following SOAP response is created when calling this SOAP-Exception:

HTTP/1.1 500 Internal Server Error.
Server: Microsoft-IIS/5.1
Date: Fri, 03 Dec 2004 13:02:23 GMT
X-Powered-By: ASP.NET
X-AspNet-Version: 1.1.4322
Cache-Control: private
Content-Type: text/xml; charset=utf-8
Content-Length: 431

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelop e xmlns:soap="htt p://schemas.xmlsoap .org/soap/envelope/"
xmlns:xsi="http ://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http ://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
<faultcode>Serv er.Problem</faultcode>
<faultstring>He re is a &quot;quote&quo t;.</faultstring>
<detail />
</soap:Fault>
</soap:Body>
</soap:Envelope>

All though the encoding should be utf-8 and "& q u o t ;" is not correct.
This worked fine in .net 1.1 without the SP1. The correct <faultstring>
should be:
<faultstring>He re is a "quote".</faultstring>

This problem also occurs when using german Umlaute: f.e. with an exception
message of "Fahrvergnügen" . It is converted incorrectly to
<faultstring>Fa hrvergn&amp;#25 2;gen</faultstring>.

This is a serious problem for us, because in german and french many error
messages will have special characters like ö,ä, é, à in them and these are
not correctly processed.

Thanks for any help!
Dany
Nov 23 '05 #3
Found out .net web service clients are just as helpless with handling these character references.

I've built a simple web service consumer in VC#. On a button click the following code is executed:
try
{
localhost.Umbre llaNTAppServer appserv = new localhost.Umbre llaNTAppServer( );
string result = appserv.HelloWo rld();
MessageBox.Show ( result );
}
catch (Exception exc)
{
MessageBox.Show ( "Error has occured: " + exc.Message );
}

If an exception is raised in the web service method saying i.e. 'The method "HelloWorld " is under construction.' as the exception message. The user will be shown 'Error has occured: The method &quot;HelloWorl d&quot; is under construction. In a real world example the user would be sure to complain about this display.

Before SP1 everything was fine, but now handling of exception messages coming from web service calls must be handled specifically.
In normal SOAP responses (not SOAP faults) strings containing special characters are correctly sent. So if 'The method "HelloWorld " is under construction.' is returned the client will also receive it unchanged and without any character references.

So I wonder why this inconsistent behaviour was built into the SP1 by MS.

Regards Dany
Dan Rogers<da***@mi crosoft.com> 06.12.2004 21:42:15 >>>

Hi,

What you are describing is the use of encoded strings. These are, to my
knowlege, valid in XML and the responsibility of the parser to convert
properly.

What is the source of the problem, given that these are valid
representations of the data? Is the client not able to process these
properly as it should?

Regards

Dan Rogers
Microsoft Corporation

--------------------
Date: Sat, 4 Dec 2004 13:43:30 +0100
X-Newsreader: Groupwise 6.5
From: Dany <Da**@newsgroup s.com>
Subject: SP1 Problem SOAPException doesn't return quote and Umlaute correcty
Message-ID: <uC************ **@TK2MSFTNGP14 .phx.gbl>
Newsgroups: microsoft.publi c.dotnet.framew ork.webservices
NNTP-Posting-Host: adsl-62-167-138-146.adslplus.ch 62.167.138.146
Lines: 1
Path:
cpmsftngxa10.ph x.gbl!TK2MSFTFE ED02.phx.gbl!TK 2MSFTNGP08.phx. gbl!TK2MSFTNGP1 4
..phx.gbl
Xref: cpmsftngxa10.ph x.gbl
microsoft.publi c.dotnet.framew ork.webservices :7851
X-Tomcat-NG: microsoft.publi c.dotnet.framew ork.webservices

Our web service was working fine until we installed .net Framework 1.1
service pack 1. Uninstalling SP1 is not an option because our largest
customer says service packs marked as "critical" by Microsoft must be
installed on their servers.

Now german Umlaute (ä, ü, ö) and quotes are returned incorrectly in SOAP
fault responses.
This can be easily verified:

Implement the following in a web service method (just raises a
SOAPException with a message text containing quote characters ("):

string errMsg = "Here is a \"quote\".";
throw new SoapException( errMsg,new XmlQualifiedNam e("Server.Probl em"));

The following SOAP response is created when calling this SOAP-Exception:

HTTP/1.1 500 Internal Server Error.
Server: Microsoft-IIS/5.1
Date: Fri, 03 Dec 2004 13:02:23 GMT
X-Powered-By: ASP.NET
X-AspNet-Version: 1.1.4322
Cache-Control: private
Content-Type: text/xml; charset=utf-8
Content-Length: 431

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelop e xmlns:soap="htt p://schemas.xmlsoap .org/soap/envelope/"
xmlns:xsi="http ://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http ://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
<faultcode>Serv er.Problem</faultcode>
<faultstring>He re is a &quot;quote&quo t;.</faultstring>
<detail />
</soap:Fault>
</soap:Body>
</soap:Envelope>

All though the encoding should be utf-8 and "& q u o t ;" is not correct.
This worked fine in .net 1.1 without the SP1. The correct <faultstring>
should be:
<faultstring>He re is a "quote".</faultstring>

This problem also occurs when using german Umlaute: f.e. with an exception
message of "Fahrvergnügen" . It is converted incorrectly to
<faultstring>Fa hrvergn&amp;#25 2;gen</faultstring>.

This is a serious problem for us, because in german and french many error
messages will have special characters like ö,ä, é, à in them and these are
not correctly processed.

Thanks for any help!
Dany
Nov 23 '05 #4
Hi Dany,

I suspect that there is an encoding issue in the way you are loading the
XML. Is there an inconsistency between the XML encoding mark up and the
actual encoding on the wire? UrlEncoded XML is supported by the DOM, but
if someone somewhere along the way is loading what looks like the XML into
a unicode string without doing an encoding conversion first, issues can
happen.

As for how/why this happened - I'm not that guy. For the most part, 1.1
fixed bugs. It is possible that it introduced some as well. I'll see what
I can dig up from the serialization team - can't promise they have a fix,
but I'll see.

Dan
--------------------
Date: Tue, 7 Dec 2004 14:00:36 +0100
References: <uC************ **@TK2MSFTNGP14 .phx.gbl>
<hz************ **@cpmsftngxa10 .phx.gbl>
X-Newsreader: Groupwise 6.5
From: Dany <Da**@newsgroup s.com>
Subject: RE: SP1 Problem SOAPException doesn't return quote and Umlaute
correcty
Message-ID: <eD************ **@TK2MSFTNGP15 .phx.gbl>
Newsgroups: microsoft.publi c.dotnet.framew ork.webservices
NNTP-Posting-Host: gonzo.opus.ch 213.200.237.2
Lines: 1
Path:
cpmsftngxa10.ph x.gbl!TK2MSFTFE ED01.phx.gbl!TK 2MSFTNGP08.phx. gbl!TK2MSFTNGP1 5
.phx.gbl
Xref: cpmsftngxa10.ph x.gbl
microsoft.publi c.dotnet.framew ork.webservices :7944
X-Tomcat-NG: microsoft.publi c.dotnet.framew ork.webservices

Found out .net web service clients are just as helpless with handling these
character references.

I've built a simple web service consumer in VC#. On a button click the
following code is executed:
try
{
localhost.Umbre llaNTAppServer appserv = new
localhost.Umbre llaNTAppServer( );
string result = appserv.HelloWo rld();
MessageBox.Show ( result );
}
catch (Exception exc)
{

MessageBox.Show ( "Error has occured: " + exc.Message );
}

If an exception is raised in the web service method saying i.e. 'The method
"HelloWorld " is under construction.' as the exception message. The user
will be shown 'Error has occured: The method &quot;HelloWorl d&quot; is
under construction. In a real world example the user would be sure to
complain about this display.

Before SP1 everything was fine, but now handling of exception messages
coming from web service calls must be handled specifically.
In normal SOAP responses (not SOAP faults) strings containing special
characters are correctly sent. So if 'The method "HelloWorld " is under
construction.' is returned the client will also receive it unchanged and
without any character references.

So I wonder why this inconsistent behaviour was built into the SP1 by MS.

Regards Dany
Dan Rogers<da***@mi crosoft.com> 06.12.2004 21:42:15 >>>

Hi,

What you are describing is the use of encoded strings. These are, to my
knowlege, valid in XML and the responsibility of the parser to convert
properly.

What is the source of the problem, given that these are valid
representations of the data? Is the client not able to process these
properly as it should?

Regards

Dan Rogers
Microsoft Corporation

--------------------
Date: Sat, 4 Dec 2004 13:43:30 +0100
X-Newsreader: Groupwise 6.5
From: Dany <Da**@newsgroup s.com>
Subject: SP1 Problem SOAPException doesn't return quote and Umlaute correcty
Message-ID: <uC************ **@TK2MSFTNGP14 .phx.gbl>
Newsgroups: microsoft.publi c.dotnet.framew ork.webservices
NNTP-Posting-Host: adsl-62-167-138-146.adslplus.ch 62.167.138.146
Lines: 1
Path:
cpmsftngxa10.ph x.gbl!TK2MSFTFE ED02.phx.gbl!TK 2MSFTNGP08.phx. gbl!TK2MSFTNGP1 4
.phx.gbl
Xref: cpmsftngxa10.ph x.gbl
microsoft.publi c.dotnet.framew ork.webservices :7851
X-Tomcat-NG: microsoft.publi c.dotnet.framew ork.webservices

Our web service was working fine until we installed .net Framework 1.1
service pack 1. Uninstalling SP1 is not an option because our largest
customer says service packs marked as "critical" by Microsoft must be
installed on their servers.

Now german Umlaute (ä, ü, ö) and quotes are returned incorrectly in SOAP
fault responses.
This can be easily verified:

Implement the following in a web service method (just raises a
SOAPException with a message text containing quote characters ("):

string errMsg = "Here is a \"quote\".";
throw new SoapException( errMsg,new XmlQualifiedNam e("Server.Probl em"));

The following SOAP response is created when calling this SOAP-Exception:

HTTP/1.1 500 Internal Server Error.
Server: Microsoft-IIS/5.1
Date: Fri, 03 Dec 2004 13:02:23 GMT
X-Powered-By: ASP.NET
X-AspNet-Version: 1.1.4322
Cache-Control: private
Content-Type: text/xml; charset=utf-8
Content-Length: 431

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelop e xmlns:soap="htt p://schemas.xmlsoap .org/soap/envelope/"
xmlns:xsi="http ://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http ://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
<faultcode>Serv er.Problem</faultcode>
<faultstring>He re is a &quot;quote&quo t;.</faultstring>
<detail />
</soap:Fault>
</soap:Body>
</soap:Envelope>

All though the encoding should be utf-8 and "& q u o t ;" is not correct.
This worked fine in .net 1.1 without the SP1. The correct <faultstring>
should be:
<faultstring>He re is a "quote".</faultstring>

This problem also occurs when using german Umlaute: f.e. with an exception
message of "Fahrvergnügen" . It is converted incorrectly to
<faultstring>Fa hrvergn&amp;#25 2;gen</faultstring>.

This is a serious problem for us, because in german and french many error
messages will have special characters like ö,ä, é, à in them and these are
not correctly processed.

Thanks for any help!
Dany

Nov 23 '05 #5
Hi Dan

The more I look into it the more I get the impression there is really something very wrong here in the .net Framework SP1. I've been talking to an XML specialist and he noticed that it is not correct XML generated when there is an Umlaut (ä, ö, ü) f.e. the error message for "Bitte erfassen sie ein Abreisedatum für das Dokument." is represented in the SOAP fault as

<faultstring>Bi tte erfassen sie ein Abreisedatum f&amp;#252;r das Dokument.</faultstring>

Only when using a proxy to log the messages on the wire did I notice this. Now when the XML Fault is read through an XML parser the &amp; is correctly converted to a "&" and the result is "Bitte erfassen sie ein Abreisedatum für das Dokument." which is of course wrong after a conversion.

So it looks like the SOAP fault string is converted twice by the .net Framework before landing on the wire. The first time everything would be Ok and the ü character is converted to a valid character reference "ü". But then this is replaced by character references once again which results in "&amp;#252; " which is of course not a valid XML representation of the "ü" character.

In my view this is a serious bug in the handling of SOAPExceptions by the .net Framework. I'd be really thankful if you could check with the serialization team. Reproducing the error should be quite simple. Hope they have a solution then.

Thanks & Regards
Dany

Dan Rogers<da***@mi crosoft.com> 07.12.2004 21:36:25 >>> Hi Dany,

I suspect that there is an encoding issue in the way you are loading the
XML. Is there an inconsistency between the XML encoding mark up and the
actual encoding on the wire? UrlEncoded XML is supported by the DOM, but
if someone somewhere along the way is loading what looks like the XML into
a unicode string without doing an encoding conversion first, issues can
happen.

As for how/why this happened - I'm not that guy. For the most part, 1.1
fixed bugs. It is possible that it introduced some as well. I'll see what
I can dig up from the serialization team - can't promise they have a fix,
but I'll see.

Dan
--------------------
Date: Tue, 7 Dec 2004 14:00:36 +0100
References: <uC************ **@TK2MSFTNGP14 .phx.gbl>
<hz************ **@cpmsftngxa10 .phx.gbl>
X-Newsreader: Groupwise 6.5
From: Dany <Da**@newsgroup s.com>
Subject: RE: SP1 Problem SOAPException doesn't return quote and Umlaute
correcty
Message-ID: <eD************ **@TK2MSFTNGP15 .phx.gbl>
Newsgroups: microsoft.publi c.dotnet.framew ork.webservices
NNTP-Posting-Host: gonzo.opus.ch 213.200.237.2
Lines: 1
Path:
cpmsftngxa10.ph x.gbl!TK2MSFTFE ED01.phx.gbl!TK 2MSFTNGP08.phx. gbl!TK2MSFTNGP1 5
..phx.gbl
Xref: cpmsftngxa10.ph x.gbl
microsoft.publi c.dotnet.framew ork.webservices :7944
X-Tomcat-NG: microsoft.publi c.dotnet.framew ork.webservices

Found out .net web service clients are just as helpless with handling these
character references.

I've built a simple web service consumer in VC#. On a button click the
following code is executed:
try
{
localhost.Umbre llaNTAppServer appserv = new
localhost.Umbre llaNTAppServer( );
string result = appserv.HelloWo rld();
MessageBox.Show ( result );
}
catch (Exception exc)
{

MessageBox.Show ( "Error has occured: " + exc.Message );
}

If an exception is raised in the web service method saying i.e. 'The method
"HelloWorld " is under construction.' as the exception message. The user
will be shown 'Error has occured: The method &quot;HelloWorl d&quot; is
under construction. In a real world example the user would be sure to
complain about this display.

Before SP1 everything was fine, but now handling of exception messages
coming from web service calls must be handled specifically.
In normal SOAP responses (not SOAP faults) strings containing special
characters are correctly sent. So if 'The method "HelloWorld " is under
construction.' is returned the client will also receive it unchanged and
without any character references.

So I wonder why this inconsistent behaviour was built into the SP1 by MS.

Regards Dany
Dan Rogers<da***@mi crosoft.com> 06.12.2004 21:42:15 >>>

Hi,

What you are describing is the use of encoded strings. These are, to my
knowlege, valid in XML and the responsibility of the parser to convert
properly.

What is the source of the problem, given that these are valid
representations of the data? Is the client not able to process these
properly as it should?

Regards

Dan Rogers
Microsoft Corporation

--------------------
Date: Sat, 4 Dec 2004 13:43:30 +0100
X-Newsreader: Groupwise 6.5
From: Dany <Da**@newsgroup s.com>
Subject: SP1 Problem SOAPException doesn't return quote and Umlaute correcty
Message-ID: <uC************ **@TK2MSFTNGP14 .phx.gbl>
Newsgroups: microsoft.publi c.dotnet.framew ork.webservices
NNTP-Posting-Host: adsl-62-167-138-146.adslplus.ch 62.167.138.146
Lines: 1
Path:
cpmsftngxa10.ph x.gbl!TK2MSFTFE ED02.phx.gbl!TK 2MSFTNGP08.phx. gbl!TK2MSFTNGP1 4
..phx.gbl
Xref: cpmsftngxa10.ph x.gbl
microsoft.publi c.dotnet.framew ork.webservices :7851
X-Tomcat-NG: microsoft.publi c.dotnet.framew ork.webservices

Our web service was working fine until we installed .net Framework 1.1
service pack 1. Uninstalling SP1 is not an option because our largest
customer says service packs marked as "critical" by Microsoft must be
installed on their servers.

Now german Umlaute (ä, ü, ö) and quotes are returned incorrectly in SOAP
fault responses.
This can be easily verified:

Implement the following in a web service method (just raises a
SOAPException with a message text containing quote characters ("):

string errMsg = "Here is a \"quote\".";
throw new SoapException( errMsg,new XmlQualifiedNam e("Server.Probl em"));

The following SOAP response is created when calling this SOAP-Exception:

HTTP/1.1 500 Internal Server Error.
Server: Microsoft-IIS/5.1
Date: Fri, 03 Dec 2004 13:02:23 GMT
X-Powered-By: ASP.NET
X-AspNet-Version: 1.1.4322
Cache-Control: private
Content-Type: text/xml; charset=utf-8
Content-Length: 431

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelop e xmlns:soap="htt p://schemas.xmlsoap .org/soap/envelope/"
xmlns:xsi="http ://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http ://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
<faultcode>Serv er.Problem</faultcode>
<faultstring>He re is a &quot;quote&quo t;.</faultstring>
<detail />
</soap:Fault>
</soap:Body>
</soap:Envelope>

All though the encoding should be utf-8 and "& q u o t ;" is not correct.
This worked fine in .net 1.1 without the SP1. The correct <faultstring>
should be:
<faultstring>He re is a "quote".</faultstring>

This problem also occurs when using german Umlaute: f.e. with an exception
message of "Fahrvergnügen" . It is converted incorrectly to
<faultstring>Fa hrvergn&amp;#25 2;gen</faultstring>.

This is a serious problem for us, because in german and french many error
messages will have special characters like ö,ä, é, à in them and these are
not correctly processed.

Thanks for any help!
Dany
Nov 23 '05 #6
Hi Dany,

The SOAP subsystem doesn't actually do much when it comes to getting the
fault string on the wire. What it will do is take an XML node and insert
it into the proper place in a fault. It sounds like there may be the case
where the code you are using to set up the XML is double converting. This
could happen if you try and treat a string with embedded angle brackets in
it like XML. Try creating the fault node data by using XmlElement's if
this is the case.

I hope this helps

Dan
--------------------
Date: Wed, 8 Dec 2004 09:11:03 +0100
References: <uC************ **@TK2MSFTNGP14 .phx.gbl>
<eD************ **@TK2MSFTNGP15 .phx.gbl>
<#1************ **@cpmsftngxa10 .phx.gbl>
X-Newsreader: Groupwise 6.5
From: Dany <Da**@newsgroup s.com>
Subject: RE: SP1 Problem SOAPException doesn't return quote and Umlaute
correcty
Message-ID: <et************ **@TK2MSFTNGP09 .phx.gbl>
Newsgroups: microsoft.publi c.dotnet.framew ork.webservices
NNTP-Posting-Host: gonzo.opus.ch 213.200.237.2
Lines: 1
Path:
cpmsftngxa10.ph x.gbl!TK2MSFTNG XA01.phx.gbl!TK 2MSFTNGP08.phx. gbl!TK2MSFTNGP0 9
.phx.gbl
Xref: cpmsftngxa10.ph x.gbl
microsoft.publi c.dotnet.framew ork.webservices :7978
X-Tomcat-NG: microsoft.publi c.dotnet.framew ork.webservices

Hi Dan

The more I look into it the more I get the impression there is really
something very wrong here in the .net Framework SP1. I've been talking to
an XML specialist and he noticed that it is not correct XML generated when
there is an Umlaut (ä, ö, ü) f.e. the error message for "Bitte erfassen sie
ein Abreisedatum für das Dokument." is represented in the SOAP fault as

<faultstring>Bi tte erfassen sie ein Abreisedatum f&amp;#252;r das
Dokument.</faultstring>

Only when using a proxy to log the messages on the wire did I notice this.
Now when the XML Fault is read through an XML parser the &amp; is correctly
converted to a "&" and the result is "Bitte erfassen sie ein Abreisedatum
für das Dokument." which is of course wrong after a conversion.

So it looks like the SOAP fault string is converted twice by the .net
Framework before landing on the wire. The first time everything would be Ok
and the ü character is converted to a valid character reference "ü".
But then this is replaced by character references once again which results
in "&amp;#252; " which is of course not a valid XML representation of the
"ü" character.

In my view this is a serious bug in the handling of SOAPExceptions by the
.net Framework. I'd be really thankful if you could check with the
serialization team. Reproducing the error should be quite simple. Hope they
have a solution then.

Thanks & Regards
Dany

Dan Rogers<da***@mi crosoft.com> 07.12.2004 21:36:25 >>> Hi Dany,

I suspect that there is an encoding issue in the way you are loading the
XML. Is there an inconsistency between the XML encoding mark up and the
actual encoding on the wire? UrlEncoded XML is supported by the DOM, but
if someone somewhere along the way is loading what looks like the XML into
a unicode string without doing an encoding conversion first, issues can
happen.

As for how/why this happened - I'm not that guy. For the most part, 1.1
fixed bugs. It is possible that it introduced some as well. I'll see what
I can dig up from the serialization team - can't promise they have a fix,
but I'll see.

Dan
--------------------
Date: Tue, 7 Dec 2004 14:00:36 +0100
References: <uC************ **@TK2MSFTNGP14 .phx.gbl>
<hz************ **@cpmsftngxa10 .phx.gbl>
X-Newsreader: Groupwise 6.5
From: Dany <Da**@newsgroup s.com>
Subject: RE: SP1 Problem SOAPException doesn't return quote and Umlaute
correcty
Message-ID: <eD************ **@TK2MSFTNGP15 .phx.gbl>
Newsgroups: microsoft.publi c.dotnet.framew ork.webservices
NNTP-Posting-Host: gonzo.opus.ch 213.200.237.2
Lines: 1
Path:
cpmsftngxa10.ph x.gbl!TK2MSFTFE ED01.phx.gbl!TK 2MSFTNGP08.phx. gbl!TK2MSFTNGP1 5
.phx.gbl
Xref: cpmsftngxa10.ph x.gbl
microsoft.publi c.dotnet.framew ork.webservices :7944
X-Tomcat-NG: microsoft.publi c.dotnet.framew ork.webservices

Found out .net web service clients are just as helpless with handling these
character references.

I've built a simple web service consumer in VC#. On a button click the
following code is executed:
try
{
localhost.Umbre llaNTAppServer appserv = new
localhost.Umbre llaNTAppServer( );
string result = appserv.HelloWo rld();
MessageBox.Show ( result );
}
catch (Exception exc)
{

MessageBox.Show ( "Error has occured: " + exc.Message );
}

If an exception is raised in the web service method saying i.e. 'The method
"HelloWorld " is under construction.' as the exception message. The user
will be shown 'Error has occured: The method &quot;HelloWorl d&quot; is
under construction. In a real world example the user would be sure to
complain about this display.

Before SP1 everything was fine, but now handling of exception messages
coming from web service calls must be handled specifically.
In normal SOAP responses (not SOAP faults) strings containing special
characters are correctly sent. So if 'The method "HelloWorld " is under
construction.' is returned the client will also receive it unchanged and
without any character references.

So I wonder why this inconsistent behaviour was built into the SP1 by MS.

Regards Dany
Dan Rogers<da***@mi crosoft.com> 06.12.2004 21:42:15 >>>

Hi,

What you are describing is the use of encoded strings. These are, to my
knowlege, valid in XML and the responsibility of the parser to convert
properly.

What is the source of the problem, given that these are valid
representations of the data? Is the client not able to process these
properly as it should?

Regards

Dan Rogers
Microsoft Corporation

--------------------
Date: Sat, 4 Dec 2004 13:43:30 +0100
X-Newsreader: Groupwise 6.5
From: Dany <Da**@newsgroup s.com>
Subject: SP1 Problem SOAPException doesn't return quote and Umlaute correcty
Message-ID: <uC************ **@TK2MSFTNGP14 .phx.gbl>
Newsgroups: microsoft.publi c.dotnet.framew ork.webservices
NNTP-Posting-Host: adsl-62-167-138-146.adslplus.ch 62.167.138.146
Lines: 1
Path:
cpmsftngxa10.ph x.gbl!TK2MSFTFE ED02.phx.gbl!TK 2MSFTNGP08.phx. gbl!TK2MSFTNGP1 4
.phx.gbl
Xref: cpmsftngxa10.ph x.gbl
microsoft.publi c.dotnet.framew ork.webservices :7851
X-Tomcat-NG: microsoft.publi c.dotnet.framew ork.webservices

Our web service was working fine until we installed .net Framework 1.1
service pack 1. Uninstalling SP1 is not an option because our largest
customer says service packs marked as "critical" by Microsoft must be
installed on their servers.

Now german Umlaute (ä, ü, ö) and quotes are returned incorrectly in SOAP
fault responses.
This can be easily verified:

Implement the following in a web service method (just raises a
SOAPException with a message text containing quote characters ("):

string errMsg = "Here is a \"quote\".";
throw new SoapException( errMsg,new XmlQualifiedNam e("Server.Probl em"));

The following SOAP response is created when calling this SOAP-Exception:

HTTP/1.1 500 Internal Server Error.
Server: Microsoft-IIS/5.1
Date: Fri, 03 Dec 2004 13:02:23 GMT
X-Powered-By: ASP.NET
X-AspNet-Version: 1.1.4322
Cache-Control: private
Content-Type: text/xml; charset=utf-8
Content-Length: 431

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelop e xmlns:soap="htt p://schemas.xmlsoap .org/soap/envelope/"
xmlns:xsi="http ://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http ://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
<faultcode>Serv er.Problem</faultcode>
<faultstring>He re is a &quot;quote&quo t;.</faultstring>
<detail />
</soap:Fault>
</soap:Body>
</soap:Envelope>

All though the encoding should be utf-8 and "& q u o t ;" is not correct.
This worked fine in .net 1.1 without the SP1. The correct <faultstring>
should be:
<faultstring>He re is a "quote".</faultstring>

This problem also occurs when using german Umlaute: f.e. with an exception
message of "Fahrvergnügen" . It is converted incorrectly to
<faultstring>Fa hrvergn&amp;#25 2;gen</faultstring>.

This is a serious problem for us, because in german and french many error
messages will have special characters like ö,ä, é, à in them and these are
not correctly processed.

Thanks for any help!
Dany

Nov 23 '05 #7
Hi Dan

We are not creating any fault node data. All we do is:

throw new SoapException( errMsg,new XmlQualifiedNam e("Server.Probl em"));

where errMsg is a normal string, which can contain characters like """, "<", ">", "ä","ü", etc.

The way I understand, we have no influence as to how the SOAP response is created here. So I don't understand what we could do differently. Please elaborate if you have an idea.

The way we see it the SOAP subsystem serializes the SOAPException to a SOAP response and falsly converts the characters in the fault string to XML twice. The fact that a pure .net consumer can't even handle converting the fault string back to a correct string seems to prove, that it can't be correct.

We have done a workaround (=hack) now, assuming that MS won't be able to fix the bug quick enough. We've created a SOAP Extension that takes the SOAP response and undoes the wrongly converted characters. But this is by no meens something I want to have to keep in a productive system.

I really would appreciate if you could pass this bug on to someone in MS who could take care of it.
Reproducing is very easy:
1. In VS create a new web service project.
2. Add a HelloWorld webservice method as so:
[WebMethod]
public string HelloWorld()
{
string msgStr = "This is a quote: ""
throw new SoapException( "Now I've got a problem \"here\". ><",new XmlQualifiedNam e("Server.Probl em"));
}
3. Create a new WindowsApplicat ion
4. Add a web reference to the web service created above (call it TestWebService)
5. Add a button and add the following code for it's click handler
private void button1_Click(o bject sender, System.EventArg s e)
{
try
{
TestWebService. Service1 appserv = new TestWebService. Service1();
string result = appserv.HelloWo rld();
MessageBox.Show ( result );
}
catch (Exception exc)
{
MessageBox.Show ( exc.Message );
}
}
6. Now run the client and after pressing the button1 you will see a message box with the incorrectly converted error message. If you use a proxy to analyse the SOAP request and response you can see that the fault string in the SOAPFault is: This is a quote &amp;quot; or this is a lesser than symbol &amp;lt; or these are german Umlaute &amp;#246;, &amp;#228;, &amp;#252;
This is of course the wrong XML representation and should actually be: This is a quote &quot; or this is a lesser than symbol &lt; or these are german Umlaute ö, ä, ü

Regards
Dany

Dan Rogers<da***@mi crosoft.com> 13.12.2004 21:12:11 >>> Hi Dany,

The SOAP subsystem doesn't actually do much when it comes to getting the
fault string on the wire. What it will do is take an XML node and insert
it into the proper place in a fault. It sounds like there may be the case
where the code you are using to set up the XML is double converting. This
could happen if you try and treat a string with embedded angle brackets in
it like XML. Try creating the fault node data by using XmlElement's if
this is the case.

I hope this helps

Dan
--------------------
Date: Wed, 8 Dec 2004 09:11:03 +0100
References: <uC************ **@TK2MSFTNGP14 .phx.gbl>
<eD************ **@TK2MSFTNGP15 .phx.gbl>
<#1************ **@cpmsftngxa10 .phx.gbl>
X-Newsreader: Groupwise 6.5
From: Dany <Da**@newsgroup s.com>
Subject: RE: SP1 Problem SOAPException doesn't return quote and Umlaute
correcty
Message-ID: <et************ **@TK2MSFTNGP09 .phx.gbl>
Newsgroups: microsoft.publi c.dotnet.framew ork.webservices
NNTP-Posting-Host: gonzo.opus.ch 213.200.237.2
Lines: 1
Path:
cpmsftngxa10.ph x.gbl!TK2MSFTNG XA01.phx.gbl!TK 2MSFTNGP08.phx. gbl!TK2MSFTNGP0 9
..phx.gbl
Xref: cpmsftngxa10.ph x.gbl
microsoft.publi c.dotnet.framew ork.webservices :7978
X-Tomcat-NG: microsoft.publi c.dotnet.framew ork.webservices

Hi Dan

The more I look into it the more I get the impression there is really
something very wrong here in the .net Framework SP1. I've been talking to
an XML specialist and he noticed that it is not correct XML generated when
there is an Umlaut (ä, ö, ü) f.e. the error message for "Bitte erfassen sie
ein Abreisedatum für das Dokument." is represented in the SOAP fault as

<faultstring>Bi tte erfassen sie ein Abreisedatum f&amp;#252;r das
Dokument.</faultstring>

Only when using a proxy to log the messages on the wire did I notice this.
Now when the XML Fault is read through an XML parser the &amp; is correctly
converted to a "&" and the result is "Bitte erfassen sie ein Abreisedatum
für das Dokument." which is of course wrong after a conversion.

So it looks like the SOAP fault string is converted twice by the .net
Framework before landing on the wire. The first time everything would be Ok
and the ü character is converted to a valid character reference "ü".
But then this is replaced by character references once again which results
in "&amp;#252; " which is of course not a valid XML representation of the
"ü" character.

In my view this is a serious bug in the handling of SOAPExceptions by the
..net Framework. I'd be really thankful if you could check with the
serialization team. Reproducing the error should be quite simple. Hope they
have a solution then.

Thanks & Regards
Dany

Dan Rogers<da***@mi crosoft.com> 07.12.2004 21:36:25 >>> Hi Dany,

I suspect that there is an encoding issue in the way you are loading the
XML. Is there an inconsistency between the XML encoding mark up and the
actual encoding on the wire? UrlEncoded XML is supported by the DOM, but
if someone somewhere along the way is loading what looks like the XML into
a unicode string without doing an encoding conversion first, issues can
happen.

As for how/why this happened - I'm not that guy. For the most part, 1.1
fixed bugs. It is possible that it introduced some as well. I'll see what
I can dig up from the serialization team - can't promise they have a fix,
but I'll see.

Dan
--------------------
Date: Tue, 7 Dec 2004 14:00:36 +0100
References: <uC************ **@TK2MSFTNGP14 .phx.gbl>
<hz************ **@cpmsftngxa10 .phx.gbl>
X-Newsreader: Groupwise 6.5
From: Dany <Da**@newsgroup s.com>
Subject: RE: SP1 Problem SOAPException doesn't return quote and Umlaute
correcty
Message-ID: <eD************ **@TK2MSFTNGP15 .phx.gbl>
Newsgroups: microsoft.publi c.dotnet.framew ork.webservices
NNTP-Posting-Host: gonzo.opus.ch 213.200.237.2
Lines: 1
Path:
cpmsftngxa10.ph x.gbl!TK2MSFTFE ED01.phx.gbl!TK 2MSFTNGP08.phx. gbl!TK2MSFTNGP1 5
..phx.gbl
Xref: cpmsftngxa10.ph x.gbl
microsoft.publi c.dotnet.framew ork.webservices :7944
X-Tomcat-NG: microsoft.publi c.dotnet.framew ork.webservices

Found out .net web service clients are just as helpless with handling these
character references.

I've built a simple web service consumer in VC#. On a button click the
following code is executed:
try
{
localhost.Umbre llaNTAppServer appserv = new
localhost.Umbre llaNTAppServer( );
string result = appserv.HelloWo rld();
MessageBox.Show ( result );
}
catch (Exception exc)
{

MessageBox.Show ( "Error has occured: " + exc.Message );
}

If an exception is raised in the web service method saying i.e. 'The method
"HelloWorld " is under construction.' as the exception message. The user
will be shown 'Error has occured: The method &quot;HelloWorl d&quot; is
under construction. In a real world example the user would be sure to
complain about this display.

Before SP1 everything was fine, but now handling of exception messages
coming from web service calls must be handled specifically.
In normal SOAP responses (not SOAP faults) strings containing special
characters are correctly sent. So if 'The method "HelloWorld " is under
construction.' is returned the client will also receive it unchanged and
without any character references.

So I wonder why this inconsistent behaviour was built into the SP1 by MS.

Regards Dany
Dan Rogers<da***@mi crosoft.com> 06.12.2004 21:42:15 >>>

Hi,

What you are describing is the use of encoded strings. These are, to my
knowlege, valid in XML and the responsibility of the parser to convert
properly.

What is the source of the problem, given that these are valid
representations of the data? Is the client not able to process these
properly as it should?

Regards

Dan Rogers
Microsoft Corporation

--------------------
Date: Sat, 4 Dec 2004 13:43:30 +0100
X-Newsreader: Groupwise 6.5
From: Dany <Da**@newsgroup s.com>
Subject: SP1 Problem SOAPException doesn't return quote and Umlaute correcty
Message-ID: <uC************ **@TK2MSFTNGP14 .phx.gbl>
Newsgroups: microsoft.publi c.dotnet.framew ork.webservices
NNTP-Posting-Host: adsl-62-167-138-146.adslplus.ch 62.167.138.146
Lines: 1
Path:
cpmsftngxa10.ph x.gbl!TK2MSFTFE ED02.phx.gbl!TK 2MSFTNGP08.phx. gbl!TK2MSFTNGP1 4
..phx.gbl
Xref: cpmsftngxa10.ph x.gbl
microsoft.publi c.dotnet.framew ork.webservices :7851
X-Tomcat-NG: microsoft.publi c.dotnet.framew ork.webservices

Our web service was working fine until we installed .net Framework 1.1
service pack 1. Uninstalling SP1 is not an option because our largest
customer says service packs marked as "critical" by Microsoft must be
installed on their servers.

Now german Umlaute (ä, ü, ö) and quotes are returned incorrectly in SOAP
fault responses.
This can be easily verified:

Implement the following in a web service method (just raises a
SOAPException with a message text containing quote characters ("):

string errMsg = "Here is a \"quote\".";
throw new SoapException( errMsg,new XmlQualifiedNam e("Server.Probl em"));

The following SOAP response is created when calling this SOAP-Exception:

HTTP/1.1 500 Internal Server Error.
Server: Microsoft-IIS/5.1
Date: Fri, 03 Dec 2004 13:02:23 GMT
X-Powered-By: ASP.NET
X-AspNet-Version: 1.1.4322
Cache-Control: private
Content-Type: text/xml; charset=utf-8
Content-Length: 431

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelop e xmlns:soap="htt p://schemas.xmlsoap .org/soap/envelope/"
xmlns:xsi="http ://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http ://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
<faultcode>Serv er.Problem</faultcode>
<faultstring>He re is a &quot;quote&quo t;.</faultstring>
<detail />
</soap:Fault>
</soap:Body>
</soap:Envelope>

All though the encoding should be utf-8 and "& q u o t ;" is not correct.
This worked fine in .net 1.1 without the SP1. The correct <faultstring>
should be:
<faultstring>He re is a "quote".</faultstring>

This problem also occurs when using german Umlaute: f.e. with an exception
message of "Fahrvergnügen" . It is converted incorrectly to
<faultstring>Fa hrvergn&amp;#25 2;gen</faultstring>.

This is a serious problem for us, because in german and french many error
messages will have special characters like ö,ä, é, à in them and these are
not correctly processed.

Thanks for any help!
Dany
Nov 23 '05 #8
Hi Dan

An error has crept into my last post. The HelloWorld web service implementation should be:
[WebMethod]
public string HelloWorld()
{
string msgStr = "This is a quote \" or this is a lesser than symbol < or these are german Umlaute ö, ä, ü";
throw new SoapException( msgStr,new XmlQualifiedNam e("Server.Probl em"));
}

Regards
Dany

Dany<Da**@newsg roups.com> 14.12.2004 13:53:37 >>> Hi Dan

We are not creating any fault node data. All we do is:

throw new SoapException( errMsg,new XmlQualifiedNam e("Server.Probl em"));

where errMsg is a normal string, which can contain characters like """, "<", ">", "ä","ü", etc.

The way I understand, we have no influence as to how the SOAP response is created here. So I don't understand what we could do differently. Please elaborate if you have an idea.

The way we see it the SOAP subsystem serializes the SOAPException to a SOAP response and falsly converts the characters in the fault string to XML twice. The fact that a pure .net consumer can't even handle converting the fault string back to a correct string seems to prove, that it can't be correct.

We have done a workaround (=hack) now, assuming that MS won't be able to fix the bug quick enough. We've created a SOAP Extension that takes the SOAP response and undoes the wrongly converted characters. But this is by no meens something I want to have to keep in a productive system.

I really would appreciate if you could pass this bug on to someone in MS who could take care of it.
Reproducing is very easy:
1. In VS create a new web service project.
2. Add a HelloWorld webservice method as so:
[WebMethod]
public string HelloWorld()
{
string msgStr = "This is a quote: ""
throw new SoapException( "Now I've got a problem \"here\". ><",new XmlQualifiedNam e("Server.Probl em"));
}
3. Create a new WindowsApplicat ion
4. Add a web reference to the web service created above (call it TestWebService)
5. Add a button and add the following code for it's click handler
private void button1_Click(o bject sender, System.EventArg s e)
{
try
{
TestWebService. Service1 appserv = new TestWebService. Service1();
string result = appserv.HelloWo rld();
MessageBox.Show ( result );
}
catch (Exception exc)
{
MessageBox.Show ( exc.Message );
}
}
6. Now run the client and after pressing the button1 you will see a message box with the incorrectly converted error message. If you use a proxy to analyse the SOAP request and response you can see that the fault string in the SOAPFault is: This is a quote &amp;quot; or this is a lesser than symbol &amp;lt; or these are german Umlaute &amp;#246;, &amp;#228;, &amp;#252;
This is of course the wrong XML representation and should actually be: This is a quote &quot; or this is a lesser than symbol &lt; or these are german Umlaute ö, ä, ü

Regards
Dany

Dan Rogers<da***@mi crosoft.com> 13.12.2004 21:12:11 >>> Hi Dany,

The SOAP subsystem doesn't actually do much when it comes to getting the
fault string on the wire. What it will do is take an XML node and insert
it into the proper place in a fault. It sounds like there may be the case
where the code you are using to set up the XML is double converting. This
could happen if you try and treat a string with embedded angle brackets in
it like XML. Try creating the fault node data by using XmlElement's if
this is the case.

I hope this helps

Dan
--------------------
Date: Wed, 8 Dec 2004 09:11:03 +0100
References: <uC************ **@TK2MSFTNGP14 .phx.gbl>
<eD************ **@TK2MSFTNGP15 .phx.gbl>
<#1************ **@cpmsftngxa10 .phx.gbl>
X-Newsreader: Groupwise 6.5
From: Dany <Da**@newsgroup s.com>
Subject: RE: SP1 Problem SOAPException doesn't return quote and Umlaute
correcty
Message-ID: <et************ **@TK2MSFTNGP09 .phx.gbl>
Newsgroups: microsoft.publi c.dotnet.framew ork.webservices
NNTP-Posting-Host: gonzo.opus.ch 213.200.237.2
Lines: 1
Path:
cpmsftngxa10.ph x.gbl!TK2MSFTNG XA01.phx.gbl!TK 2MSFTNGP08.phx. gbl!TK2MSFTNGP0 9
..phx.gbl
Xref: cpmsftngxa10.ph x.gbl
microsoft.publi c.dotnet.framew ork.webservices :7978
X-Tomcat-NG: microsoft.publi c.dotnet.framew ork.webservices

Hi Dan

The more I look into it the more I get the impression there is really
something very wrong here in the .net Framework SP1. I've been talking to
an XML specialist and he noticed that it is not correct XML generated when
there is an Umlaut (ä, ö, ü) f.e. the error message for "Bitte erfassen sie
ein Abreisedatum für das Dokument." is represented in the SOAP fault as

<faultstring>Bi tte erfassen sie ein Abreisedatum f&amp;#252;r das
Dokument.</faultstring>

Only when using a proxy to log the messages on the wire did I notice this.
Now when the XML Fault is read through an XML parser the &amp; is correctly
converted to a "&" and the result is "Bitte erfassen sie ein Abreisedatum
für das Dokument." which is of course wrong after a conversion.

So it looks like the SOAP fault string is converted twice by the .net
Framework before landing on the wire. The first time everything would be Ok
and the ü character is converted to a valid character reference "ü".
But then this is replaced by character references once again which results
in "&amp;#252; " which is of course not a valid XML representation of the
"ü" character.

In my view this is a serious bug in the handling of SOAPExceptions by the
..net Framework. I'd be really thankful if you could check with the
serialization team. Reproducing the error should be quite simple. Hope they
have a solution then.

Thanks & Regards
Dany

Dan Rogers<da***@mi crosoft.com> 07.12.2004 21:36:25 >>> Hi Dany,

I suspect that there is an encoding issue in the way you are loading the
XML. Is there an inconsistency between the XML encoding mark up and the
actual encoding on the wire? UrlEncoded XML is supported by the DOM, but
if someone somewhere along the way is loading what looks like the XML into
a unicode string without doing an encoding conversion first, issues can
happen.

As for how/why this happened - I'm not that guy. For the most part, 1.1
fixed bugs. It is possible that it introduced some as well. I'll see what
I can dig up from the serialization team - can't promise they have a fix,
but I'll see.

Dan
--------------------
Date: Tue, 7 Dec 2004 14:00:36 +0100
References: <uC************ **@TK2MSFTNGP14 .phx.gbl>
<hz************ **@cpmsftngxa10 .phx.gbl>
X-Newsreader: Groupwise 6.5
From: Dany <Da**@newsgroup s.com>
Subject: RE: SP1 Problem SOAPException doesn't return quote and Umlaute
correcty
Message-ID: <eD************ **@TK2MSFTNGP15 .phx.gbl>
Newsgroups: microsoft.publi c.dotnet.framew ork.webservices
NNTP-Posting-Host: gonzo.opus.ch 213.200.237.2
Lines: 1
Path:
cpmsftngxa10.ph x.gbl!TK2MSFTFE ED01.phx.gbl!TK 2MSFTNGP08.phx. gbl!TK2MSFTNGP1 5
..phx.gbl
Xref: cpmsftngxa10.ph x.gbl
microsoft.publi c.dotnet.framew ork.webservices :7944
X-Tomcat-NG: microsoft.publi c.dotnet.framew ork.webservices

Found out .net web service clients are just as helpless with handling these
character references.

I've built a simple web service consumer in VC#. On a button click the
following code is executed:
try
{
localhost.Umbre llaNTAppServer appserv = new
localhost.Umbre llaNTAppServer( );
string result = appserv.HelloWo rld();
MessageBox.Show ( result );
}
catch (Exception exc)
{

MessageBox.Show ( "Error has occured: " + exc.Message );
}

If an exception is raised in the web service method saying i.e. 'The method
"HelloWorld " is under construction.' as the exception message. The user
will be shown 'Error has occured: The method &quot;HelloWorl d&quot; is
under construction. In a real world example the user would be sure to
complain about this display.

Before SP1 everything was fine, but now handling of exception messages
coming from web service calls must be handled specifically.
In normal SOAP responses (not SOAP faults) strings containing special
characters are correctly sent. So if 'The method "HelloWorld " is under
construction.' is returned the client will also receive it unchanged and
without any character references.

So I wonder why this inconsistent behaviour was built into the SP1 by MS.

Regards Dany
Dan Rogers<da***@mi crosoft.com> 06.12.2004 21:42:15 >>>

Hi,

What you are describing is the use of encoded strings. These are, to my
knowlege, valid in XML and the responsibility of the parser to convert
properly.

What is the source of the problem, given that these are valid
representations of the data? Is the client not able to process these
properly as it should?

Regards

Dan Rogers
Microsoft Corporation

--------------------
Date: Sat, 4 Dec 2004 13:43:30 +0100
X-Newsreader: Groupwise 6.5
From: Dany <Da**@newsgroup s.com>
Subject: SP1 Problem SOAPException doesn't return quote and Umlaute correcty
Message-ID: <uC************ **@TK2MSFTNGP14 .phx.gbl>
Newsgroups: microsoft.publi c.dotnet.framew ork.webservices
NNTP-Posting-Host: adsl-62-167-138-146.adslplus.ch 62.167.138.146
Lines: 1
Path:
cpmsftngxa10.ph x.gbl!TK2MSFTFE ED02.phx.gbl!TK 2MSFTNGP08.phx. gbl!TK2MSFTNGP1 4
..phx.gbl
Xref: cpmsftngxa10.ph x.gbl
microsoft.publi c.dotnet.framew ork.webservices :7851
X-Tomcat-NG: microsoft.publi c.dotnet.framew ork.webservices

Our web service was working fine until we installed .net Framework 1.1
service pack 1. Uninstalling SP1 is not an option because our largest
customer says service packs marked as "critical" by Microsoft must be
installed on their servers.

Now german Umlaute (ä, ü, ö) and quotes are returned incorrectly in SOAP
fault responses.
This can be easily verified:

Implement the following in a web service method (just raises a
SOAPException with a message text containing quote characters ("):

string errMsg = "Here is a \"quote\".";
throw new SoapException( errMsg,new XmlQualifiedNam e("Server.Probl em"));

The following SOAP response is created when calling this SOAP-Exception:

HTTP/1.1 500 Internal Server Error.
Server: Microsoft-IIS/5.1
Date: Fri, 03 Dec 2004 13:02:23 GMT
X-Powered-By: ASP.NET
X-AspNet-Version: 1.1.4322
Cache-Control: private
Content-Type: text/xml; charset=utf-8
Content-Length: 431

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelop e xmlns:soap="htt p://schemas.xmlsoap .org/soap/envelope/"
xmlns:xsi="http ://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http ://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
<faultcode>Serv er.Problem</faultcode>
<faultstring>He re is a &quot;quote&quo t;.</faultstring>
<detail />
</soap:Fault>
</soap:Body>
</soap:Envelope>

All though the encoding should be utf-8 and "& q u o t ;" is not correct.
This worked fine in .net 1.1 without the SP1. The correct <faultstring>
should be:
<faultstring>He re is a "quote".</faultstring>

This problem also occurs when using german Umlaute: f.e. with an exception
message of "Fahrvergnügen" . It is converted incorrectly to
<faultstring>Fa hrvergn&amp;#25 2;gen</faultstring>.

This is a serious problem for us, because in german and french many error
messages will have special characters like ö,ä, é, à in them and these are
not correctly processed.

Thanks for any help!
Dany


Nov 23 '05 #9
Hi Dany,

You can manuallyl supply the XML for the fault node. The issue is
converting a unicode string to XML. When you have unicode in strings, and
then let the default system convert it to XML, the first thing it's going
to do is URLEncode the string, and then include THAT in the fault node.
Try creating the XML yourself (Xml.Document.C reateNode .. or something like
that). And populating the fault yourself. I think you'll find that
SoapException has some overrides in the constructor that let you do this.

It's been a while... but I remember doing this some time back myself.

Dan
--------------------
Date: Tue, 14 Dec 2004 13:53:37 +0100
References: <uC************ **@TK2MSFTNGP14 .phx.gbl>
<et************ **@TK2MSFTNGP09 .phx.gbl>
<03************ *@cpmsftngxa10. phx.gbl>
X-Newsreader: Groupwise 6.5
From: Dany <Da**@newsgroup s.com>
Subject: RE: SP1 Problem SOAPException doesn't return quote and Umlaute
correcty
Message-ID: <#f************ **@tk2msftngp13 .phx.gbl>
Newsgroups: microsoft.publi c.dotnet.framew ork.webservices
NNTP-Posting-Host: gonzo.opus.ch 213.200.237.2
Lines: 1
Path:
cpmsftngxa10.ph x.gbl!TK2MSFTFE ED02.phx.gbl!TK 2MSFTNGP08.phx. gbl!tk2msftngp1 3
.phx.gbl
Xref: cpmsftngxa10.ph x.gbl
microsoft.publi c.dotnet.framew ork.webservices :8068
X-Tomcat-NG: microsoft.publi c.dotnet.framew ork.webservices

Hi Dan

We are not creating any fault node data. All we do is:

throw new SoapException( errMsg,new XmlQualifiedNam e("Server.Probl em"));

where errMsg is a normal string, which can contain characters like """,
"<", ">", "ä","ü", etc.

The way I understand, we have no influence as to how the SOAP response is
created here. So I don't understand what we could do differently. Please
elaborate if you have an idea.

The way we see it the SOAP subsystem serializes the SOAPException to a SOAP
response and falsly converts the characters in the fault string to XML
twice. The fact that a pure .net consumer can't even handle converting the
fault string back to a correct string seems to prove, that it can't be
correct.

We have done a workaround (=hack) now, assuming that MS won't be able to
fix the bug quick enough. We've created a SOAP Extension that takes the
SOAP response and undoes the wrongly converted characters. But this is by
no meens something I want to have to keep in a productive system.

I really would appreciate if you could pass this bug on to someone in MS
who could take care of it.
Reproducing is very easy:
1. In VS create a new web service project.
2. Add a HelloWorld webservice method as so:
[WebMethod]
public string HelloWorld()
{
string msgStr = "This is a
quote: ""
throw new SoapException( "Now I've got a problem \"here\". ><",new
XmlQualifiedNam e("Server.Probl em"));
}
3. Create a new WindowsApplicat ion
4. Add a web reference to the web service created above (call it
TestWebService)
5. Add a button and add the following code for it's click handler
private void button1_Click(o bject sender, System.EventArg s e)
{
try
{
TestWebService. Service1 appserv = new TestWebService. Service1();
string result = appserv.HelloWo rld();
MessageBox.Show ( result );
}
catch (Exception exc)
{

MessageBox.Show ( exc.Message );
}
}
6. Now run the client and after pressing the button1 you will see a message
box with the incorrectly converted error message. If you use a proxy to
analyse the SOAP request and response you can see that the fault string in
the SOAPFault is: This is a quote &amp;quot; or this is a lesser than
symbol &amp;lt; or these are german Umlaute &amp;#246;, &amp;#228;,
&amp;#252;
This is of course the wrong XML representation and should actually be: This
is a quote &quot; or this is a lesser than symbol &lt; or these are german
Umlaute ö, ä, ü

Regards
Dany

Dan Rogers<da***@mi crosoft.com> 13.12.2004 21:12:11 >>> Hi Dany,

The SOAP subsystem doesn't actually do much when it comes to getting the
fault string on the wire. What it will do is take an XML node and insert
it into the proper place in a fault. It sounds like there may be the case
where the code you are using to set up the XML is double converting. This
could happen if you try and treat a string with embedded angle brackets in
it like XML. Try creating the fault node data by using XmlElement's if
this is the case.

I hope this helps

Dan
--------------------
Date: Wed, 8 Dec 2004 09:11:03 +0100
References: <uC************ **@TK2MSFTNGP14 .phx.gbl>
<eD************ **@TK2MSFTNGP15 .phx.gbl>
<#1************ **@cpmsftngxa10 .phx.gbl>
X-Newsreader: Groupwise 6.5
From: Dany <Da**@newsgroup s.com>
Subject: RE: SP1 Problem SOAPException doesn't return quote and Umlaute
correcty
Message-ID: <et************ **@TK2MSFTNGP09 .phx.gbl>
Newsgroups: microsoft.publi c.dotnet.framew ork.webservices
NNTP-Posting-Host: gonzo.opus.ch 213.200.237.2
Lines: 1
Path:
cpmsftngxa10.ph x.gbl!TK2MSFTNG XA01.phx.gbl!TK 2MSFTNGP08.phx. gbl!TK2MSFTNGP0 9
.phx.gbl
Xref: cpmsftngxa10.ph x.gbl
microsoft.publi c.dotnet.framew ork.webservices :7978
X-Tomcat-NG: microsoft.publi c.dotnet.framew ork.webservices

Hi Dan

The more I look into it the more I get the impression there is really
something very wrong here in the .net Framework SP1. I've been talking to
an XML specialist and he noticed that it is not correct XML generated when
there is an Umlaut (ä, ö, ü) f.e. the error message for "Bitte erfassen sie
ein Abreisedatum für das Dokument." is represented in the SOAP fault as

<faultstring>Bi tte erfassen sie ein Abreisedatum f&amp;#252;r das
Dokument.</faultstring>

Only when using a proxy to log the messages on the wire did I notice this.
Now when the XML Fault is read through an XML parser the &amp; is correctly
converted to a "&" and the result is "Bitte erfassen sie ein Abreisedatum
für das Dokument." which is of course wrong after a conversion.

So it looks like the SOAP fault string is converted twice by the .net
Framework before landing on the wire. The first time everything would be Ok
and the ü character is converted to a valid character reference "ü".
But then this is replaced by character references once again which results
in "&amp;#252; " which is of course not a valid XML representation of the
"ü" character.

In my view this is a serious bug in the handling of SOAPExceptions by the
.net Framework. I'd be really thankful if you could check with the
serialization team. Reproducing the error should be quite simple. Hope they
have a solution then.

Thanks & Regards
Dany

Dan Rogers<da***@mi crosoft.com> 07.12.2004 21:36:25 >>> Hi Dany,

I suspect that there is an encoding issue in the way you are loading the
XML. Is there an inconsistency between the XML encoding mark up and the
actual encoding on the wire? UrlEncoded XML is supported by the DOM, but
if someone somewhere along the way is loading what looks like the XML into
a unicode string without doing an encoding conversion first, issues can
happen.

As for how/why this happened - I'm not that guy. For the most part, 1.1
fixed bugs. It is possible that it introduced some as well. I'll see what
I can dig up from the serialization team - can't promise they have a fix,
but I'll see.

Dan
--------------------
Date: Tue, 7 Dec 2004 14:00:36 +0100
References: <uC************ **@TK2MSFTNGP14 .phx.gbl>
<hz************ **@cpmsftngxa10 .phx.gbl>
X-Newsreader: Groupwise 6.5
From: Dany <Da**@newsgroup s.com>
Subject: RE: SP1 Problem SOAPException doesn't return quote and Umlaute
correcty
Message-ID: <eD************ **@TK2MSFTNGP15 .phx.gbl>
Newsgroups: microsoft.publi c.dotnet.framew ork.webservices
NNTP-Posting-Host: gonzo.opus.ch 213.200.237.2
Lines: 1
Path:
cpmsftngxa10.ph x.gbl!TK2MSFTFE ED01.phx.gbl!TK 2MSFTNGP08.phx. gbl!TK2MSFTNGP1 5
.phx.gbl
Xref: cpmsftngxa10.ph x.gbl
microsoft.publi c.dotnet.framew ork.webservices :7944
X-Tomcat-NG: microsoft.publi c.dotnet.framew ork.webservices

Found out .net web service clients are just as helpless with handling these
character references.

I've built a simple web service consumer in VC#. On a button click the
following code is executed:
try
{
localhost.Umbre llaNTAppServer appserv = new
localhost.Umbre llaNTAppServer( );
string result = appserv.HelloWo rld();
MessageBox.Show ( result );
}
catch (Exception exc)
{

MessageBox.Show ( "Error has occured: " + exc.Message );
}

If an exception is raised in the web service method saying i.e. 'The method
"HelloWorld " is under construction.' as the exception message. The user
will be shown 'Error has occured: The method &quot;HelloWorl d&quot; is
under construction. In a real world example the user would be sure to
complain about this display.

Before SP1 everything was fine, but now handling of exception messages
coming from web service calls must be handled specifically.
In normal SOAP responses (not SOAP faults) strings containing special
characters are correctly sent. So if 'The method "HelloWorld " is under
construction.' is returned the client will also receive it unchanged and
without any character references.

So I wonder why this inconsistent behaviour was built into the SP1 by MS.

Regards Dany
Dan Rogers<da***@mi crosoft.com> 06.12.2004 21:42:15 >>>

Hi,

What you are describing is the use of encoded strings. These are, to my
knowlege, valid in XML and the responsibility of the parser to convert
properly.

What is the source of the problem, given that these are valid
representations of the data? Is the client not able to process these
properly as it should?

Regards

Dan Rogers
Microsoft Corporation

--------------------
Date: Sat, 4 Dec 2004 13:43:30 +0100
X-Newsreader: Groupwise 6.5
From: Dany <Da**@newsgroup s.com>
Subject: SP1 Problem SOAPException doesn't return quote and Umlaute correcty
Message-ID: <uC************ **@TK2MSFTNGP14 .phx.gbl>
Newsgroups: microsoft.publi c.dotnet.framew ork.webservices
NNTP-Posting-Host: adsl-62-167-138-146.adslplus.ch 62.167.138.146
Lines: 1
Path:
cpmsftngxa10.ph x.gbl!TK2MSFTFE ED02.phx.gbl!TK 2MSFTNGP08.phx. gbl!TK2MSFTNGP1 4
.phx.gbl
Xref: cpmsftngxa10.ph x.gbl
microsoft.publi c.dotnet.framew ork.webservices :7851
X-Tomcat-NG: microsoft.publi c.dotnet.framew ork.webservices

Our web service was working fine until we installed .net Framework 1.1
service pack 1. Uninstalling SP1 is not an option because our largest
customer says service packs marked as "critical" by Microsoft must be
installed on their servers.

Now german Umlaute (ä, ü, ö) and quotes are returned incorrectly in SOAP
fault responses.
This can be easily verified:

Implement the following in a web service method (just raises a
SOAPException with a message text containing quote characters ("):

string errMsg = "Here is a \"quote\".";
throw new SoapException( errMsg,new XmlQualifiedNam e("Server.Probl em"));

The following SOAP response is created when calling this SOAP-Exception:

HTTP/1.1 500 Internal Server Error.
Server: Microsoft-IIS/5.1
Date: Fri, 03 Dec 2004 13:02:23 GMT
X-Powered-By: ASP.NET
X-AspNet-Version: 1.1.4322
Cache-Control: private
Content-Type: text/xml; charset=utf-8
Content-Length: 431

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelop e xmlns:soap="htt p://schemas.xmlsoap .org/soap/envelope/"
xmlns:xsi="http ://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http ://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
<faultcode>Serv er.Problem</faultcode>
<faultstring>He re is a &quot;quote&quo t;.</faultstring>
<detail />
</soap:Fault>
</soap:Body>
</soap:Envelope>

All though the encoding should be utf-8 and "& q u o t ;" is not correct.
This worked fine in .net 1.1 without the SP1. The correct <faultstring>
should be:
<faultstring>He re is a "quote".</faultstring>

This problem also occurs when using german Umlaute: f.e. with an exception
message of "Fahrvergnügen" . It is converted incorrectly to
<faultstring>Fa hrvergn&amp;#25 2;gen</faultstring>.

This is a serious problem for us, because in german and french many error
messages will have special characters like ö,ä, é, à in them and these are
not correctly processed.

Thanks for any help!
Dany

Nov 23 '05 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
3551
by: cullepm3 | last post by:
I would like to convert the xml fault information in SoapException.Detail into a class. The webservice that I am connecting defines a type called WebServiceException. All the methods provided by the webservice return this as the Fault. When I add a web reference to my C# project, VisualStudio generates a class called WebServiceException. When the web service throws an exception I would like to convert it into a WebServiceException. It...
1
1980
by: djmc | last post by:
Hi, In my web application, I catch SoapExceptions and check the SoapException.Message property to determine the error that occurred. For instance, when authenticating a user, if the incorrect password is detected, the following message is contained within SoapException.Message: Password is incorrect for user
0
1779
by: Gustavo Guerra | last post by:
If In a WebMethod I throw a SoapException("message", MyFaultCode) it's supposed to get the same exception back at the client, right? But what's really happening is that I get a SoapException always with ServerFaultCode and a full description on the message field, including stack trace, like what happens when I throw any exception not of the SoapException type. What can I be doing wrong to this to happen? Can somebody help me here? In...
1
24618
by: Mike Clark | last post by:
I have a webservice that works great on localhost, but as soon as I promote to a network server I get an exception that doesn't tell me much. There's some implementation details in this exception chain, but here's what it looks like: <pre>System.Web.Services.Protocols.SoapException: Server was unable to process request. --> Object reference not set to an instance of an object. at...
3
5003
by: Olivier BESSON | last post by:
Hello, I have a web service of my own on a server (vb.net). I must declare it with SoapRpcMethod to be used with JAVA. This is a simple exemple method of my vb source : >************************************************************************ > <WebMethod(), System.Web.Services.Protocols.SoapRpcMethod()> _ > Public Function HelloWorld() As > <System.Xml.Serialization.SoapElementAttribute("return")> String
4
8520
by: asanford | last post by:
http://msdn2.microsoft.com/en-us/library/ds492xtk.aspx Is this the following excerpt from the above page incorrect, or is there a bug in the .net 2.0 implementation? Or perhaps I have something configured wrong. Basically, the doc says that when a custom exception type is thrown from a web method, that the web service client app will receive a soapexception with the soapexception.InnerException property set to reference the custom...
0
1487
by: Giulio | last post by:
Hi programmers, I'm quite new in this blog, I have a question concerning web services Soap Exceptions: I created a class MySoapException derived from SoapException, I add the references both server-side and client-side, and I tried to implement correctly serialization, I mean, the "ability" of a class to be used through a web services communication (that's not so correct, I hope you understand what I mean). Here is my class:
0
1922
by: Giulio | last post by:
Hi programmers, I'm quite new in this blog, I have a question concerning web services Soap Exceptions: I created a class MySoapException derived from SoapException, I add the references both server-side and client-side, and I tried to implement correctly serialization, I mean, the "ability" of a class to be used through a web services communication (that's not so correct, I hope you understand what I mean). Here is my class:
2
1882
by: Gary Howlett | last post by:
Hi, Ive have a webservice method as such... public UserDetails Login(string Username, string Password) { /* Do login */
0
9473
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
1
9259
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
8208
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
6750
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
6053
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
4569
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
4824
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
3279
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
3
2193
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.