Wednesday, March 21, 2012

datetime params quit working when i switched from ws to wcf

hi

HHello!, the following 3 webmethods still work after i switched them to WCF but now it never accepts my parameters. i didn't change anything in reporting services, but i have a feeling it's not sending the params to the service anymore.

is there an operation contract attribute change i need to make to require the datetime be provided by RS?

here's the schema provided by my serviec wsdl (the relevant portion)

- <xs:element name="EeoByAssignmentReport">

- <xs:complexType>

- <xs:sequence>

<xs:element minOccurs="0" name="start" type="xs:dateTime" />

<xs:element minOccurs="0" name="end" type="xs:dateTime" />

</xs:sequence>

</xs:complexType>

</xs:element>

- <xs:element name="EeoByAssignmentReportResponse">

- <xs:complexType>

- <xs:sequence>

- <xs:element minOccurs="0" name="EeoByAssignmentReportResult" nillable="true">

- <xs:complexType>

- <xs:annotation>

- <xs:appinfo>

<ActualType Name="DataSet" Namespace="http://schemas.datacontract.org/2004/07/System.Data" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />

</xs:appinfo>

</xs:annotation>

- <xs:sequence>

<xs:element ref="xs:schema" />

<xs:any />

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:sequence>

</xs:complexType>

</xs:element>

- <xs:element name="EeoByPersonReport">

- <xs:complexType>

- <xs:sequence>

<xs:element minOccurs="0" name="start" type="xs:dateTime" />

<xs:element minOccurs="0" name="end" type="xs:dateTime" />

</xs:sequence>

</xs:complexType>

</xs:element>

- <xs:element name="EeoByPersonReportResponse">

- <xs:complexType>

- <xs:sequence>

- <xs:element minOccurs="0" name="EeoByPersonReportResult" nillable="true">

- <xs:complexType>

- <xs:annotation>

- <xs:appinfo>

<ActualType Name="DataSet" Namespace="http://schemas.datacontract.org/2004/07/System.Data" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />

</xs:appinfo>

</xs:annotation>

- <xs:sequence>

<xs:element ref="xs:schema" />

<xs:any />

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:sequence>

</xs:complexType>

</xs:element>

- <xs:element name="EeoCountsReport">

- <xs:complexType>

- <xs:sequence>

<xs:element minOccurs="0" name="start" type="xs:dateTime" />

<xs:element minOccurs="0" name="end" type="xs:dateTime" />

</xs:sequence>

</xs:complexType>

</xs:element>

- <xs:element name="EeoCountsReportResponse">

- <xs:complexType>

- <xs:sequence>

- <xs:element minOccurs="0" name="EeoCountsReportResult" nillable="true">

- <xs:complexType>

- <xs:annotation>

- <xs:appinfo>

<ActualType Name="DataSet" Namespace="http://schemas.datacontract.org/2004/07/System.Data" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />

</xs:appinfo>

</xs:annotation>

- <xs:sequence>

<xs:element ref="xs:schema" />

<xs:any />

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:schema>

the reason i suspect it's not sending the data is because i have another method that takes a uint, and somehow the client proxy automatically generated a new bool property called <myuintname>Provided (or something like that) and now i always have to set that to true or it won't send the uint... I think that's what is happening here, except i have no way to set such a property since i'm sending pure primitaves no message contracts or anything.

i have to admit this behavior in the wcf is extremely frustrating, because all it does is zero out the field when you don't provide t he bool flag...which if i didn't want to send anything it would automatically be zero'd out because i didn't set it to anything.... makes no sense at all.

No comments:

Post a Comment