Hi
I am currently trying to get our reports to run on RS2005. We have
implemented a custom authentication system, and retrieve all the reports via
web services which we then render to our own report browser.
To have all the images render when rendering in HTML4.0 format, we are using
the renderstream function on all returned streamIDs. This has worked
perfectly for us in RS2000, but now we cannot get it to work with RS2005.
To help others reading this forum who are stuck with this I'll begin with
explaining some differences from RS2000 that we have managed to solve... and
then comes my question...
The first issue was that a URI would not be accepted in the streamroot
section. This however was solved with using a complete http://.. path... in
RS2000, the relative path was enough.
Then I noticed that the only streamID that was returned was the streamid
"0", which could not be retrieved from the Report Server. The cause for this
seems to be that you now need to use a history snapshot in order to retrieve
valid streamids- This was not explicitly needed in RS2000. So then I let all
reports create snapshots... This gave me something that looked like valid
StreamGuids to work with...
However, I still cannot retrieve these images from the ReportServer. I get:
"The stream cannot be found. The stream identifier that is provided to an
operation cannot be located in the report server database. --> The stream
cannot be found. The stream identifier that is provided to an operation
cannot be located in the report server database."
Everything looks good... I have the streamID, I have the snapshotID... I've
tried attaching the ReportParameters or ReportHistoryparameters, DeviceInfo,
and all other possible parameters I can give the RenderStream function, but I
still cannot retrieve the stream...
I have also done the SetReportHistoryOptions... to allow snapshots... no
good...
What am I missing here? Using the Sept CTP.
/KjellI am having the exact same issue. If I publish against a 2000 Report Server
everything works fine, on 2005 i get stream not found. (hanging the uri of
the image path with file:")
I am using the final release version.
"Kjell" wrote:
> Hi
> I am currently trying to get our reports to run on RS2005. We have
> implemented a custom authentication system, and retrieve all the reports via
> web services which we then render to our own report browser.
> To have all the images render when rendering in HTML4.0 format, we are using
> the renderstream function on all returned streamIDs. This has worked
> perfectly for us in RS2000, but now we cannot get it to work with RS2005.
> To help others reading this forum who are stuck with this I'll begin with
> explaining some differences from RS2000 that we have managed to solve... and
> then comes my question...
> The first issue was that a URI would not be accepted in the streamroot
> section. This however was solved with using a complete http://.. path... in
> RS2000, the relative path was enough.
> Then I noticed that the only streamID that was returned was the streamid
> "0", which could not be retrieved from the Report Server. The cause for this
> seems to be that you now need to use a history snapshot in order to retrieve
> valid streamids- This was not explicitly needed in RS2000. So then I let all
> reports create snapshots... This gave me something that looked like valid
> StreamGuids to work with...
> However, I still cannot retrieve these images from the ReportServer. I get:
> "The stream cannot be found. The stream identifier that is provided to an
> operation cannot be located in the report server database. --> The stream
> cannot be found. The stream identifier that is provided to an operation
> cannot be located in the report server database."
> Everything looks good... I have the streamID, I have the snapshotID... I've
> tried attaching the ReportParameters or ReportHistoryparameters, DeviceInfo,
> and all other possible parameters I can give the RenderStream function, but I
> still cannot retrieve the stream...
> I have also done the SetReportHistoryOptions... to allow snapshots... no
> good...
> What am I missing here? Using the Sept CTP.
> /Kjell|||I found a solution that works in my case. The trick was to pass the
reportHistoryParameters returned by the Render call into RenderStream,
instead of the original reportParameters.
result = rs.Render(reportPath, format, historyID, devInfo, reportParameters,
credentials,
showHideToggle, out encoding, out mimeType, out
reportHistoryParameters, out warnings,
out streamIDs);
// for multi-stream renders, such as HTML, need to render the report
images as streams
// so they show in the report
if (this.IsHtmlReport)
{
foreach (string streamID in streamIDs)
{
try
{
byte [] image = rs.RenderStream(reportPath, format, streamID,
historyID, devInfo, reportHistoryParameters, out optionalString, out
optionalString);
FileStream stream = File.OpenWrite(imageDownloadPath + streamID);
stream.Write(image, 0, image.Length);
stream.Close();
}
"Pedro" wrote:
> I am having the exact same issue. If I publish against a 2000 Report Server
> everything works fine, on 2005 i get stream not found. (hanging the uri of
> the image path with file:")
> I am using the final release version.
> "Kjell" wrote:
> > Hi
> >
> > I am currently trying to get our reports to run on RS2005. We have
> > implemented a custom authentication system, and retrieve all the reports via
> > web services which we then render to our own report browser.
> >
> > To have all the images render when rendering in HTML4.0 format, we are using
> > the renderstream function on all returned streamIDs. This has worked
> > perfectly for us in RS2000, but now we cannot get it to work with RS2005.
> >
> > To help others reading this forum who are stuck with this I'll begin with
> > explaining some differences from RS2000 that we have managed to solve... and
> > then comes my question...
> >
> > The first issue was that a URI would not be accepted in the streamroot
> > section. This however was solved with using a complete http://.. path... in
> > RS2000, the relative path was enough.
> >
> > Then I noticed that the only streamID that was returned was the streamid
> > "0", which could not be retrieved from the Report Server. The cause for this
> > seems to be that you now need to use a history snapshot in order to retrieve
> > valid streamids- This was not explicitly needed in RS2000. So then I let all
> > reports create snapshots... This gave me something that looked like valid
> > StreamGuids to work with...
> >
> > However, I still cannot retrieve these images from the ReportServer. I get:
> >
> > "The stream cannot be found. The stream identifier that is provided to an
> > operation cannot be located in the report server database. --> The stream
> > cannot be found. The stream identifier that is provided to an operation
> > cannot be located in the report server database."
> >
> > Everything looks good... I have the streamID, I have the snapshotID... I've
> > tried attaching the ReportParameters or ReportHistoryparameters, DeviceInfo,
> > and all other possible parameters I can give the RenderStream function, but I
> > still cannot retrieve the stream...
> >
> > I have also done the SetReportHistoryOptions... to allow snapshots... no
> > good...
> >
> > What am I missing here? Using the Sept CTP.
> >
> > /Kjell|||Finally got this one solved:
There is a bug with the backwards compability in RS2005. If you have more
than one parameter in your report, but you only pass some of them via the web
service interface, the report server will not be able to match your streamids
with a previous execution. Microsoft created a QFE for this that you will
need in order to fix it. The alternative is to pass every report parameter
with the render calls, even if you do not use the parameters.
/Kjell
"Pedro" wrote:
> I found a solution that works in my case. The trick was to pass the
> reportHistoryParameters returned by the Render call into RenderStream,
> instead of the original reportParameters.
> result = rs.Render(reportPath, format, historyID, devInfo, reportParameters,
> credentials,
> showHideToggle, out encoding, out mimeType, out
> reportHistoryParameters, out warnings,
> out streamIDs);
>
> // for multi-stream renders, such as HTML, need to render the report
> images as streams
> // so they show in the report
> if (this.IsHtmlReport)
> {
> foreach (string streamID in streamIDs)
> {
> try
> {
> byte [] image = rs.RenderStream(reportPath, format, streamID,
> historyID, devInfo, reportHistoryParameters, out optionalString, out
> optionalString);
> FileStream stream = File.OpenWrite(imageDownloadPath + streamID);
> stream.Write(image, 0, image.Length);
> stream.Close();
> }
> "Pedro" wrote:
> > I am having the exact same issue. If I publish against a 2000 Report Server
> > everything works fine, on 2005 i get stream not found. (hanging the uri of
> > the image path with file:")
> > I am using the final release version.
> > "Kjell" wrote:
> >
> > > Hi
> > >
> > > I am currently trying to get our reports to run on RS2005. We have
> > > implemented a custom authentication system, and retrieve all the reports via
> > > web services which we then render to our own report browser.
> > >
> > > To have all the images render when rendering in HTML4.0 format, we are using
> > > the renderstream function on all returned streamIDs. This has worked
> > > perfectly for us in RS2000, but now we cannot get it to work with RS2005.
> > >
> > > To help others reading this forum who are stuck with this I'll begin with
> > > explaining some differences from RS2000 that we have managed to solve... and
> > > then comes my question...
> > >
> > > The first issue was that a URI would not be accepted in the streamroot
> > > section. This however was solved with using a complete http://.. path... in
> > > RS2000, the relative path was enough.
> > >
> > > Then I noticed that the only streamID that was returned was the streamid
> > > "0", which could not be retrieved from the Report Server. The cause for this
> > > seems to be that you now need to use a history snapshot in order to retrieve
> > > valid streamids- This was not explicitly needed in RS2000. So then I let all
> > > reports create snapshots... This gave me something that looked like valid
> > > StreamGuids to work with...
> > >
> > > However, I still cannot retrieve these images from the ReportServer. I get:
> > >
> > > "The stream cannot be found. The stream identifier that is provided to an
> > > operation cannot be located in the report server database. --> The stream
> > > cannot be found. The stream identifier that is provided to an operation
> > > cannot be located in the report server database."
> > >
> > > Everything looks good... I have the streamID, I have the snapshotID... I've
> > > tried attaching the ReportParameters or ReportHistoryparameters, DeviceInfo,
> > > and all other possible parameters I can give the RenderStream function, but I
> > > still cannot retrieve the stream...
> > >
> > > I have also done the SetReportHistoryOptions... to allow snapshots... no
> > > good...
> > >
> > > What am I missing here? Using the Sept CTP.
> > >
> > > /Kjell
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment