I have converted a ASP.NET 1.0 app to 4.0. It is a simple app with only 3 pages and 4 reports. For the most part the conversion went well and on both my development machine and the production machine I can run it, navigate between the pages, retrieve and update data from a SQL Server 2008 R2 database. On the development machine I can also create Crystal Reports which are then exported to PDF. On the production machine however when I try to do this I get this message:
Server Error in '/EslCalls' Application.
Database logon failed.
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.Runtime.InteropServices.COMException: Database logon
failed.
Source Error:
An unhandled exception was generated during the execution of the |
Stack Trace:
[COMException (0x8004100f): Database logon failed.] CrystalDecisions.ReportAppServer.Controllers.ReportSourceClass.Export(ExportOptions pExportOptions, RequestContext pRequestContext) +0 CrystalDecisions.ReportSource.EromReportSourceBase.ExportToStream(ExportRequestContext reqContext) +362 [LogOnException: Database logon failed.] CrystalDecisions.ReportAppServer.ConvertDotNetToErom.ThrowDotNetException(Exception e) +909 CrystalDecisions.ReportSource.EromReportSourceBase.ExportToStream(ExportRequestContext reqContext) +471 CrystalDecisions.CrystalReports.Engine.FormatEngine.ExportToStream(ExportRequestContext reqContext) +772 CrystalDecisions.CrystalReports.Engine.FormatEngine.Export(ExportRequestContext reqContext) +185 CrystalDecisions.CrystalReports.Engine.FormatEngine.Export() +115 CrystalDecisions.CrystalReports.Engine.ReportDocument.Export() +80 EslCalls.Reports.MakePDFfile(ReportDocument crpt, String ReportName) in C:\WebApps\EslCalls\Reports.aspx.vb:158 EslCalls.Reports.btnSubmit_Click(Object sender, EventArgs e) in C:\WebApps\EslCalls\Reports.aspx.vb:97 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +155 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3804 |
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET
Version:4.0.30319.34209
On my development machine:
Windows 7
IIS 7
Visual Studio 2010
Crystal Reports for Visual Studio 2010
The reports had been developed in Crystal XI but they were imported in to VS 2010 converted and saved
The app runs under a application pool I created that uses a network Windows account that has all the necessary permission on the SQL Server objects.
In the web.config file identity impersonate is set to true.
On the production machine:
Windows Server 2012 R2
IIS 8
SAP Crystal Reports runtime engine for. NET Framework (64-bit) 13.0.10.1385
The app runs under a application pool I created that uses the same Windows account as on my development machine
In the web.config file identity impersonate is set to true.
IIS and application are on one server and SQL Server is on another. The server that IIS is on is named Intranet02 and the Intranet02$ account has all the necessary permissions on the database objects.
The pertinent code:
Dim crpt As New ReportDocument()
crpt = New rptCategory()
ReportName = "Category"
MakeCrParameter(txtStartDate.Text, "@StartDate", crpt)
MakeCrParameter(txtEndDate.Text, "@EndDate", crpt)
FileName = MakePDFfile(crpt, ReportName)
Private Function MakePDFfile(ByVal crpt As ReportDocument, ByVal ReportName As String) As String
Dim TodayFile As String = Month(Now) & Day(Now) & Year(Now)
Dim FileName As String = ReportName & " " & Now.Month & "-" & Now.Day & "-" & Now.Year & "-" & Now.Second & ".pdf"
Dim dfdo As New CrystalDecisions.Shared.DiskFileDestinationOptions()
dfdo.DiskFileName = "C:\WebApps\EslCalls\Reports\" & FileName
With crpt
ExportOptions.ExportDestinationType = ExportDestinationType.DiskFile
.ExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat
.ExportOptions.DestinationOptions = dfdo
Export()
Close()
.Dispose()
End With
GC.Collect()
GC.WaitForPendingFinalizers()
MakePDFfile = FileName
'Open a new window linked to the PDF file containing the report. The window is resizable.
Dim Script As String = "<Script language='javascript'> win=window.open('/EslCalls/Reports/" + FileName + "','Reports','width=800,height=500,resizable=1')</script>"
Page.ClientScript.RegisterStartupScript(Me.GetType(), "Session Timed Out", Script, False)
'Clear the form after the report has been created
Clear() End Function
The error occurs at the line
Export()
Any suggestions would be greatly appreciated.
I have a report that doesn't connect to a database and it opens on the production machine. It seems like it must be a permissions issue but I don't know what it would be as the app should be running under the same account on both my development and my production machine and the reports open on my development machine.