Crystal Reports:数据库登录失败

use*_*068 1 sql-server crystal-reports iis-7.5 visual-studio-2012

我正在尝试以 PDF 格式打印水晶报告,并且在我的本地计算机上它 \xe2\x80\x99s 工作正常。但是当我将应用程序发布到服务器时,它\xe2\x80\x99s 在“打印”按钮上给出以下错误。\n我正在使用 VS2012、SQl Server 2012、IIS 7.5 和 CR 版本 13.5\n注意:我正在使用集成安全性,因此我将用户名和密码留空。请帮忙。\n我的代码行:

\n\n
    string Constring1 = ConfigurationManager.ConnectionStrings["dbRMCConnectionString"].ConnectionString;\n    SqlConnection conn = new SqlConnection(Constring1);\n    conn.Open();\n\n    ReportDocument rpt = new ReportDocument();\n\n    rpt.Load(Server.MapPath("RMCChallan.rpt"));\n\n    ParameterFieldDefinitions crParameterFieldDefinations;\n    ParameterFieldDefinition crParameterFieldDefination;\n    ParameterValues crParameterValues = new ParameterValues();\n    ParameterDiscreteValue crParameterDiscreteValue = new ParameterDiscreteValue();\n    crParameterValues.Clear();\n\n    crParameterDiscreteValue.Value = lbl_Cno.Text;\n    crParameterFieldDefinations = rpt.DataDefinition.ParameterFields;\n    crParameterFieldDefination = crParameterFieldDefinations[0];\n    crParameterValues = crParameterFieldDefination.CurrentValues;\n\n    crParameterValues.Add(crParameterDiscreteValue);\n    crParameterFieldDefination.ApplyCurrentValues(crParameterValues);\n    rpt.SetDatabaseLogon("", "", "ADMIN-PC\\\\ADMIN", "dbRMC"); \n    rpt.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, true, Guid.NewGuid().ToString());\n
Run Code Online (Sandbox Code Playgroud)\n\n

提前感谢您的帮助!:)

\n\n

堆栈跟踪:\n我正在尝试以 PDF 格式打印水晶报告,并且在我的本地计算机上\xe2\x80\x99s 工作正常。但是当我将应用程序发布到服务器时,它\xe2\x80\x99s 在“打印”按钮上给出以下错误。\n我正在使用 VS2012、SQl Server 2012、IIS 7.5 和 CR 版本 13.5\n注意:使用 Windows 身份验证..否分配给我的数据库的用户名和密码。\n\'/\' 应用程序中的服务器错误。

\n\n
\n\n

数据库登录失败。

\n\n
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. \n
Run Code Online (Sandbox Code Playgroud)\n\n

异常详细信息:System.Runtime.InteropServices.COMException: Database logon failed.

\n\n

来源错误:

\n\n
Line 178:        crParameterFieldDefination.ApplyCurrentValues(crParameterValues);\nLine 179:        rpt.SetDatabaseLogon("", "", "ADMIN-C\\\\ADMIN","MyDatabase"); \nLine 180:        rpt.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, true, Guid.NewGuid().ToString());\nLine 181:\nLine 182:\n
Run Code Online (Sandbox Code Playgroud)\n\n

源文件:e:\\25jan14\\WebSite1\\RMC.aspx.cs Line: 180

\n\n

堆栈跟踪:

\n\n
[COMException (0x8004100f): Database logon failed.]\n  CrystalDecisions.ReportAppServer.Controllers.ReportSourceClass.Export(ExportOptions pExportOptions, RequestContext pRequestContext) +0\n  CrystalDecisions.ReportSource.EromReportSourceBase.ExportToStream(ExportRequestContext reqContext) +257\n\n[LogOnException: Database logon failed.]\n   CrystalDecisions.ReportAppServer.ConvertDotNetToErom.ThrowDotNetException(Exception e) +332\n   CrystalDecisions.ReportSource.EromReportSourceBase.ExportToStream(ExportRequestContext reqContext) +310\n   CrystalDecisions.CrystalReports.Engine.FormatEngine.ExportToStream(ExportRequestContext reqContext) +654\n   CrystalDecisions.CrystalReports.Engine.ReportDocument.ExportToStream(ExportOptions options) +92\n   CrystalDecisions.CrystalReports.Engine.ReportDocument.ExportToHttpResponse(ExportOptions options, HttpResponse response, Boolean asAttachment, String attachmentName) +96\n   CrystalDecisions.CrystalReports.Engine.ReportDocument.ExportToHttpResponse(ExportFormatType formatType, HttpResponse response, Boolean asAttachment, String attachmentName) +119\n   RMC.Button5_Click(Object sender, EventArgs e) in e:\\25jan14\\WebSite1\\RMC.aspx.cs:180\n   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +9553594\n   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +103\n   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10\n   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13\n   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35\n   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1724\n
Run Code Online (Sandbox Code Playgroud)\n

Che*_*het 5

我们有同样的问题。最后我们需要安装 Microsoft SQL Server 2012 Native Client(可从https://www.microsoft.com/en-us/download/details.aspx?id=29065获取,单击安装说明并向中间滚动) 。

我们之所以能够得知这一点,是因为进程监视器在访问 HKCR/SNCL11 注册表项时显示 NOT FOUND 错误。

  • 这个评论救了我的命。这对我来说不是确切的答案,但它引导我走上了正确的道路。我遇到了与OP相同的问题,但是,我的问题最终不需要安装SQL Server Native Client,我使用的是OLEDB。我需要安装旧版本的 Microsoft OLE DB 驱动程序,因为 Microsoft 以其无限的智慧决定将 MSOLEDBSQL 驱动程序版本 18 和 19 之间的注册表项名称更改为“MSOLEDBSQL19”,而不是像往常一样读取“MSOLEDBSQL”已经过去了。所以水晶需要钥匙的时候却找不到。 (2认同)