How to use uniqueidentifier fields a return dataset from a webserv

M

martinwlarsen

I have made a web service that returns a typed dataset that includes a
uniqueidentifier field. When I import this web service into visual studio
using add reference I get the following error: Custom tool error: Failed to
generate dataset. Undefined data type: 'anyType' in the output window.

The xsd for the dataset looks like this:

<xs:element name="TestWeb">
<xs:complexType>
<xs:sequence>
<xs:element name="ID" type="xs:int" />
<xs:element name="Text1" type="xs:string" />
<xs:element name="Text2" type="xs:string" />
<xs:element minOccurs="0" name="Test3" type="xs:string" />
<xs:element minOccurs="0" name="Text4" type="xs:string" />
<xs:element msdata:DataType="System.Guid, mscorlib,
Version=2.0.3600.0, Culture=neutral,
PubicKeyToken=b77a5c561934e089" minOccurs="0" name="Testuni"
type="xs:anyType" />
</xs:sequence>
</xs:complexType>
</xs:element>

If I remove the uniqueidentifier field from the dataadaptor and re-generate
the dataset everything works. And I can refrence the web service with a
uniqueidentifier field from vs 2005 without any problem. I have also tried to
import the web service to a different mashine with VS2003 and have the same
problem.


Is there a bug fix or a good explanation for this issue?

BRGDS
Martin W. Larsen
 
M

[MSFT]

Hello Martin,

Did you work with SQL Server or other database? I test such a SQL Server
table in VS.NET 2003:

CREATE TABLE [dbo].[Table1] (
[id] [int] NOT NULL ,
[name] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[Testuni] [uniqueidentifier] NULL
) ON [PRIMARY]
GO

It generate such DataSet:

<xs:complexType>
<xs:sequence>
<xs:element name="id" type="xs:int" />
<xs:element name="name" type="xs:string" minOccurs="0" />
<xs:element name="Testuni" msdata:DataType="System.Guid,
mscorlib, Version=1.0.5000.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>

And it can be added to other projects. Is the database or table structure
that cause the difference between us?

Luke
 
M

martinwlarsen

Thanks for your answer, which led me to investigate the xsd.


Because I have VS 2005 installed on the machine and IIS uses the newest
asp.net engine as default it breaks the add reference in vs2003. The xsd for
the webservice dataset field will look like this because the asp.net engine
is running version 2:

<xs:element msdata:DataType="System.Guid, mscorlib, Version=2.0.3600.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089" minOccurs="0"
name="Testuni" type="xs:anyType" />

Which can not be used from VS 2003 as it does not know mscorlib,
Version=2.0.3600.0.

I fixed the issue by changing the ASP.NET version for the webservice folder
in IIS to version 1.1.43222.0.

For following article describes how to do the change:
http://www.microsoft.com/resources/...figuringaspnetapplicationforaspnetversion.asp

The scary part is that it means that if I convert the webservice to
VS2005(Framework 2.0) in the future I will break all of my clients unless
they have already been converted.

BRGDS
Martin W. Larsen
 
M

[MSFT]

Hi Martin,

I am glad to hear you have found the problem. Now VS.NET 2005 is just beta
version, we may expect this can be changed in release version.

Luke
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top