SQL 2005 Reporting Service - DTD Is Prohibited In This XML Document On ASPX Page
Jan 8, 2007
I have aspx page which uses Reportviewer object to execute/display reporting services report on the page based on the parameters passed by the aspx page.
It works fine. I have a problem when I try to use import option on that page. It throws the following error. Can anybody help me to resolve this issue?
Advanct thanks for your help and support
Thanks,
Sundar
Here is the error message when I export the report to any format (Excel, pdf, csv or text)
For security reasons DTD is prohibited in this XML document. To enable DTD processing set the ProhibitDtd property on XmlReaderSettings to false and pass the settings into XmlReader.Create method.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Xml.XmlException: For security reasons DTD is prohibited in this XML document. To enable DTD processing set the ProhibitDtd property on XmlReaderSettings to false and pass the settings into XmlReader.Create method.
Here is the code:
ASPX Code:
<rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt" Height="100%" ProcessingMode="Remote" Width="100%" ShowFindControls="false" ShowPageNavigationControls="true" ShowPromptAreaButton="false" AsyncRendering="false" EnableViewState="true" ShowParameterPrompts="false" Visible="false">
<ServerReport ReportServerUrl="http://miscsql1/ReportServer" ReportPath="/webreports/POS Commission Report"></ServerReport>
</rsweb:ReportViewer>
ASPX.VB Code
Dim RptParameters(2) As Microsoft.Reporting.WebForms.ReportParameter
RptParameters(0) = New Microsoft.Reporting.WebForms.ReportParameter("Repcode", objCommon.RepSite.ToString, False)
RptParameters(1) = New Microsoft.Reporting.WebForms.ReportParameter("StartDate", txtStartDate.Text.ToString)
RptParameters(2) = New Microsoft.Reporting.WebForms.ReportParameter("EndDate", txtEndDate.Text.ToString)
ReportViewer1.ServerReport.SetParameters(RptParameters)
ReportViewer1.ServerReport.Refresh()
ReportViewer1.Visible = True
objCommon = Nothing
I do a clean install of SQL Server + RS + SP1 with standard setup on Windows Server 2003. I create a simple report (select * from aTable). This report (actually any report) shows the error message "For security reasons DTD is prohibited in this XML document. To enable DTD processing set the ProhibitDtd property on XmlReaderSettings to false and pass the settings into XmlReader.Create method."
This has to do with security settings in Windows Server 2003. On Windows XP everything works fine.
Any help would be greatly appreciated. Thanks!
Edit: The reports do work in the preview tab in BIDS.
After viewing many reports in reportviewer, I sporadically get the following error message. Each attempt to access any report in report viewer after the error message first appears results in the same error message for a bit of time until it appears to reset itself. I have read that this may be related to running out of memory for report processing... We have 2GB of RAM. How can I prevent this from happening or force the system to free up some memory if it is exhausing the available memory?
For security reasons DTD is prohibited in this XML document. To enable DTD processing set the ProhibitDtd property on XmlReaderSettings to false and pass the settings into XmlReader.Create method.
I am getting this error while running a very large dataset. Please help..
The full description of the error is : "For security reasons DTD is prohibited in this XML document. To enable DTD processing set the ProhibitDtd property on XmlReaderSettings to false and pass the settings into XmlReader.Create method."
I am having hard time figuring out a solution for this. I am using sql 05, SSRS 05, Report viewer
When we develop with the Microsoft SQL Server 2005 Reporting Service. We got the exception on some reports.
For security reasons DTD is prohibited in this XML document. To enable DTD processing set the ProhibitDtd property on XmlReaderSettings to false and pass the settings into XmlReader.Create method.
Ther report renders well first time, but if we click the title to sort the report, it will throw the exception.
And It occurred that we use IE6 and IE7 to view the report at same time, but if we use the same version brower, there are no exception. Can somebody help me?
My development€™s environment :
Windows XP English Professional + SP2 Microsoft SQL Server 2005 Development version + SP 1 + SP 2 Microsoft Visual Studio 2005 Professional Version 8.0.50727.51 (QFE.050727-5100) + SP1 Microsoft .NET Framework Version 2.0.50727
I am trying to embed a Reporting Services Report in a aspx page. I have the report embedded in the page but I am having difficulty passing a parameter to the report and getting the report to run within the page. Any information is appreciated.
This error comes up in the print preview and nothing prints.
We are using VS-2005, SQL 2005 and SSRS 2005.
We had the same problem yesterday , so we have reinstalled IIS, .Net Framework 2.0 and Reporting Services, then reconfigured RS security, uploaded all the reports and enabled remote errors. After doing everything this error was gone and we were operating pretty fine.
Suddenly just we started getting the same annoying message."ROOT ELEMENT MISSING" from Report Server and from Report Manager we have " For security reasons DTD is prohibited in this XML document. To enable DTD processing set the ProhibitDtd property on XmlReaderSettings to false and pass the settings into XmlReader.Create method. "
Hi,I have a form page with an insert like this:<asp:SqlDataSource ID="addProductDataSource" runat="server" InsertCommand="INSERT INTO test( title1, firstName1, lastName1, dateOfBirth ) VALUES ( @title1, @firstName1, @lastName1 @dateOfBirth )" ConnectionString="<%$ ConnectionStrings:yourQuoteCentreConnectionString %>"> <InsertParameters> <asp:ControlParameter ControlID="dateOfBirth" Name="dateOfBirth" Type="DateTime" /> <asp:ControlParameter ControlID="title1" Name="title1" PropertyName="Text" /> <asp:ControlParameter ControlID="firstName1" Name="firstName1" PropertyName="Text" /> <asp:ControlParameter ControlID="lastName1" Name="lastName1" PropertyName="Text" /> </InsertParameters></asp:SqlDataSource> In default.aspx.vb I have:Protected Sub Wizard1_FinishButtonClick(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.WizardNavigationEventArgs) Handles Wizard1.FinishButtonClick 'CREATE DATETIME FROM USERS BIRTH DATE Dim dateOfBirth As New System.DateTime(applicantYear.SelectedValue, applicantMonth.SelectedValue, applicantMonth.SelectedValue, 0, 0, 0) 'INSERT TO DATABASE addProductDataSource.Insert()End SubI would like to reference the variable dateOfBirth created in default.aspx.vb in the insert query on the page, or ideally move the insert query into the aspx.vb page. Would this make more sense to do?Thanks,Paul
I have used Report viewer control to show ssrs 2005 report in my aspx page. Can we show the SSRS 2005 report on the aspx page in any other way? any info on this is appreciated.
I've created a report that will print on a pre-printed paper. Is there a way to embed a word document into a report or some other type on document. I'm not able to format the text like in word.
Hi Every body I Have A Report Containing Header/Footer And Also Body That Includes Detail Info In. I Want To Specify The Number Of Rows Displayed In Body In Every Page.For Example 3 Rows Being Displayed In Every Page If The Report Has More Than 1 Page. Can Anybody Help Plz?? Regards
Have anyone came across an issue with Reporting Service 2005 where if you had more than 1 group within a table and the first group has the property 'Page Break at end' checked - this will cause a page break after the group footer was printed.
Usually this is not an issue but consider this scenario - the 'Page Break at end' is set against the second group (not the first group which show the overall total) - when the last footer was printed for the second group, this cause a page break before the first group (overall) is printed - it seem to me that Reporting Service is not able to know when not to generate a page break if there isn't any more data - more importantly - there dosen't appear to be a way to set an expression against 'Page Break at end' within the group
Does anyone know of this issue and is there a workaround it?
Hi can someone help me? I'm using Access database and Microsoft VS2005 (VB) I need to take data from 2 different tables in 1 database. But i can't seems to get it right! I have: - dbWarehouse.mdb- tblReadDetails and tblStock I need to use "Barcode" from tblReadDetails, compare it with "Barcode" in tblStock then retrieve all the column in tblStock and put it in a webpage.aspx list box. I tried the following code...cn.ConnectionString = strConncn.Open()cmd = New OleDbCommand("SELECT tblStock.Barcode, tblStock.Item, tblStock.Dept, tblReadDetails.Barcode FROM tblStock JOIN tblReadDetils WHERE tblReadDetails.Barcode = tblStock.Barcode", cn)dr = cmd.ExecuteReader(CommandBehavior.CloseConnection)While dr.Read()lstBarcode.Items.Add(dr2.Item("tblStock.Barcode"))lstItem.Items.Add(dr2.Item("tblStock.Item"))lstDept.Items.Add(dr2.Item("tblStock.Dept"))End While but it prompt me the following error... OleDbException was unhandled by user codeSyntax error in FROM clause What's wrong with this code? Regards and thanks!
Being new to ASP.NET, I may be asking something that is dead simple, but please bear with me!
How would I go about listing all the tables, stored procedures and views from a SQL database within an aspx page? I understand how to connect and return a dataset etc, but that's about as far as I can get. I want to be able to list all of these objects from a given db - any ideas?
Additionally (this may not be possible) - is there a way I can list all of the objects within a visual studio.net solution, again within an aspx page?
I am trying to use session in my asp.net in moss but i got the error below, eventhough i have set web.config file to enableSessionState="true" and include €œSystem.Web.SessionState.SessionStateModule". Have i miss anything? thanks
Session state can only be used when enableSessionState is set to true, either in a configuration file or in the Page directive. Please also make sure that System.Web.SessionStateModule or a custom session state module is included in the \ section in the application configuration.
Dear i am using visual studio.net.......... when i connect database (in sqlserver) using sqldataAdapter with datagrid in visual basic.net every thing work properly........... but when i use the same in asp.net then i get an error message on the resultant explorer page give below.
Server Error in '/studentData' Application. --------------------------------------------------------------------------------
Login failed for user 'RAMIZSARDARASPNET'. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Data.SqlClient.SqlException: Login failed for user 'RAMIZSARDARASPNET'.
Source Error:
Line 85: 'Put user code to initialize the page here Line 86: Dim ds As New DataSet() Line 87: SqlDataAdapter1.Fill(ds) Line 88: DataGrid1.DataSource = ds.Tables(0) Line 89: DataGrid1.DataBind()
-------------------------------------------------------------------------------- Version Information: Microsoft .NET Framework Version:1.0.3705.0; ASP.NET Version:1.0.3705.0
Plz solve my problem and Reply me on ramiz_ch@hotmail.com Plz solve my problem and Reply me on ramiz_ch@hotmail.com Plz solve my problem and Reply me on ramiz_ch@hotmail.com
I am using Sql server reporting services.When i have create a report .rdl file and deploy it on Report server and than display that report on my application's .aspx page in pdf format using web services , every thing is perfactly working in my senario at the starting time but now i faced a problem with that. When record goes more than 2000 (in my senario a single record disply in a one report pdf page means for 2000 record in table that means its display in 2000 pdf page as with next forward option of pdf view),So in that cas it doesn't work, did now show any report and give the error as ex.Message"Client found response content type of 'text/html; charset=utf-8', but expected 'text/xml'. The request failed with the error message: -- <?xml version="1.0" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>Server Unavailable </title> </head> <body> <h1><span style="font-family:Verdana;color: #ff3300">Server Application Unavailable </span></h1> <p> <span style="font-family:Verdana;"> The web application you are attempting to access on this web server is currently unavailable. Please hit the "Refresh" button in your web browser to retry your request. </span></p> <p> <b>Administrator Note: </b> An error message detailing the cause of this specific request failure can be found in the application event log of the web server. Please review this log entry to discover what caused this error to occur. </p> </body> </html>
--."string
Any body have any idea please help me as soon as possible. urgently--- any help will be appriciate. thanks in advance. arvind
Hi How to bring Report builder in the Ui of .net aspx pages? I tryed withe the .exe but it is comming with a new process and come up with new IDE of Report builder, i donot required this, I want it should come up within the Aspx page itself.
I created a report with a parameter. The parameter was created using a dataset in the report designer. This works fine. I deployed the report (webhost4life) and the report runs fine in the report manager. I am able to select my casenumber click on the default view report button and it works.
Problem: I embedd the report into an aspx page frmReports1.aspx. I call this page from another page (form). the frmReports.aspx page comes up and displays the default drop down list box with the casenumbers (fine). I select the casenumber and click on the view report button and NOTHING. I here the postbacks taking place but all that happens is the default value appears in the drop down list box and the toolbar shows. I checked permissions and everything is fine. I searched the forum and thought i found the solution with the inLine HTML and Async (still nothing) I can only think that something is not going right with the parameter. Here is my html, and code behind code. any help would be greatly apprcieated.
Public Function GetFormsCredentials(ByRef authCookie As System.Net.Cookie, ByRef userName As String, ByRef password As String, ByRef authority As String) As Boolean Implements Microsoft.Reporting.WebForms.IReportServerCredentials.GetFormsCredentials
End Function
End Class
Public Function GetFormsCredentials(ByRef authCookie As Cookie, _
ByRef userName As String, _
ByRef password As String, _
ByRef authority As String) _
As Boolean
authCookie = Nothing
userName = Nothing
password = Nothing
authority = Nothing
'Not using form credentials
Return False
End Function
Protected Sub form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles form1.Load
'ReportViewer1.ServerReport.ReportServerCredentials = New MyReportServerCredentials()
'rvTest.ServerReport.Refresh()
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
rvTest.ServerReport.ReportServerCredentials = New MyReportServerCredentials()
My stored proceddure "My Programs" includes a parameter @meid.How do I code an aspx file to run the procedure with a user ID, e.g. EmpID?I tried the following codes, but the error message indicated it can not findthe Stored Procedure. How do I pass the EmpID as a Stored Procedure parameter? <%meid = EmpIdcmd.CommandText = "MyPrograms meid"cmd.CommandType = CommandType.StoredProcedurecmd.Connection = sqlConnection2sqlConnection2.Open()reader3 = cmd.ExecuteReader(meid)While reader3.Read()sb.Append(reader3(i).ToString() + "......<BR> <BR /> ")End While%> TIA,Jeffrey
Hello, I have the following stored procedure and the following aspx page. I am trying to connect this aspx page to the stored procedure using the SqlDataSource. When the user enters a branch number in textbox1, the autonumber generated by the database is returned in textbox2. I am not quite sure what to do to get this to execute. Can someone provide me assistance? Will I need to use some vb.net code behind? Stored ProcedureCREATE PROCEDURE InsertNearMiss @Branch Int, @Identity int OUT ASINSERT INTO NearMiss (Branch)VALUES (@Branch) SET @Identity = SCOPE_IDENTITY() GO
I have a stored procedure when query a big table about 500,000 records. When I run the stored procedure in the query analyzer, it is very fast and it only takes 2~3 seconds. However, when my aspx page try to call this stored-procedure with a Command's ExecuteReader method like bellow:
I always get timeout expired exception. I try to set the connection timeout and command timeout to 100 seconds. The exception is gone but the average execution time is about 25 seconds! While the stored-procedure only takes about 2~3 seconds in query analyzer with the same parameter.
What could be the problem?? I tried to figure this out for a couple days but still no clue.
I have a table which gets updated roughly every 6 seconds with data. I have setup an aspx page with a datagrid to meta tag refresh every 3 seconds.
Because the data sometimes stops for a couple of minutes or even hours, I was thinking of a way to update/refresh the aspx page only when the table data gets entered ( to stop page flickering every 3 seconds).
I was thinking about a stored procedure and using an on update procedure.
Does anyone have any preffered methods or suggestions on the best way to accomplish this task.
Hello,I stuck in a delimma.Where to put the business logic that involves only one updatebut N number of selects from N tables........with N where conditions
I am getting the following error message when I try to execute a SSIS package from an asp.net page written in C# 2.0. What I am trying to do is basically just click on a button in the web page and it will execute the package. The code to execute the package is pretty simple. I pass the path of the DTS package stored in the local folder. This works fine in the machine where SQL2005 is installed locally. But it fail when I have a seperate Web Server and SQL Server. Any ideas? Do I have to install SSIS or SQL2005 on a web server as well?
Thanks
static public string Execute_SSIS_DTS(string DTS_Path)
{
Microsoft.SqlServer.Dts.Runtime.Application app;
app = new Microsoft.SqlServer.Dts.Runtime.Application();
Retrieving the COM class factory for component with CLSID {E44847F1-FD8C-4251-B5DA-B04BB22E236E} failed due to the following error: 80040154.
Line 226: static public string Execute_SSIS_DTS(string DTS_Path) Line 227: { Line 228: Application app = new Application(); Line 229: Package package = app.LoadPackage(DTS_Path, null); Line 230: DTSExecResult result = package.Execute();
[COMException (0x80040154): Retrieving the COM class factory for component with CLSID {E44847F1-FD8C-4251-B5DA-B04BB22E236E} failed due to the following error: 80040154.] Microsoft.SqlServer.Dts.Runtime.Application..ctor() +43
[DtsPipelineException: Retrieving the COM class factory for component with CLSID {E44847F1-FD8C-4251-B5DA-B04BB22E236E} failed due to the following error: 80040154.] Microsoft.SqlServer.Dts.Runtime.Application..ctor() +169 Utilities.Execute_SSIS_DTS(String DTS_Path) in c:InetpubwwwrootMasterTablesApp_CodeUtilities.cs:228 MasterTables_Admin_MasterTables_LOINC_External.btn_SyncLISTest_Click(Object sender, EventArgs e) in c:InetpubwwwrootMasterTablesMasterTables_CustomMasterTablesCustom_LOINC_External.aspx.cs:98 System.Web.UI.WebControls.Button.OnClick(EventArgs e) +114 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +141 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +32 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3215