第一次用水晶报表就出现这样的问题?

houlinghouling 2003-10-20 11:54:26
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: CrystalDecisions.CrystalReports.Engine.LogOnException: Logon failed.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:


[LogOnException: Logon failed.]
.F(String , EngineExceptionErrorID
)
.A(Int16 , Int32 )
.@(Int16 )
CrystalDecisions.CrystalReports.Engine.FormatEngine.GetPage(PageRequestContext reqContext)
CrystalDecisions.ReportSource.LocalReportSourceBase.GetPage(PageRequestContext pageReqContext)
CrystalDecisions.Web.ReportAgent.u(Boolean N)
CrystalDecisions.Web.CrystalReportViewer.OnPreRender(EventArgs e)
System.Web.UI.Control.PreRenderRecursiveInternal()
System.Web.UI.Control.PreRenderRecursiveInternal()
System.Web.UI.Control.PreRenderRecursiveInternal()
System.Web.UI.Page.ProcessRequestMain()


...全文
39 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
houlinghouling 2003-10-20
  • 打赏
  • 举报
回复
我用的是vs.net2003,可以吗?请问水晶报表9 。0在那里可以免费下栽
haibodotnet 2003-10-20
  • 打赏
  • 举报
回复
彻底解决 CrystalReports 登录失败问题(海波.NET,更新:2003-10-16-3)
---------------------------------------------------------------
目录:
一、Crystal Reports 9 最新补丁下载(搜集:海波.NET)
二、问题:CrystalReports 登录失败
三、原因一: NTFS 文件夹权限的问题!
四、原因二:数据库登录问题
五、部署到其它计算机,产生问题:连接失败。错误的登录参数。
六、安全之道:crystalreport 的集成认证如何与NT(2K)SERVER集成??
---------------------------------------------------------------
问题:
CrystalReports 登录失败
LogOnException
---------------------------------------------------------------
Crystal Reports 9 最新补丁下载
(1)Crystal Reports 9 Database and Export Drivers Monthly Hot Fix
http://support.crystaldecisions.com/communityCS/FilesAndUpdates/cr90dbexwin_en.zip.asp?recDnlReq=Record&dnlPath=cr90dbexwin_en.zip
(2)Crystal Reports 9 Developer Files Monthly Hot Fix
http://support.crystaldecisions.com/communityCS/FilesAndUpdates/cr90devwin_en.zip.asp?recDnlReq=Record&dnlPath=cr90devwin_en.zip
(3)Crystal Reports 9.0 Main Program Files Monthly Hot Fix
http://support.crystaldecisions.com/communityCS/FilesAndUpdates/cr90mainwin_en.zip.asp?recDnlReq=Record&dnlPath=cr90mainwin_en.zip
---------------------------------------------------------------
原因一: NTFS 文件夹权限的问题!
文件夹:
VS.NET Crystal Reports:
C:\Program Files\Microsoft Visual Studio .NET\Crystal Reports\Viewers
Crystal Reports 9.2:
C:\Program Files\Common Files\Crystal Decisions\2.0\crystalreportviewers
设置上述文件夹的“安全”,即NTFS 文件夹权限的问题!
1、添加当前用户,比如 Administrator,,权限“写入”;
2、为用户 ASPNET、SYSTEM、匿名用户(通常为 IUSR_MACHINENAME)、经过身份验证的请求用户添加“写入”权限!
---------------------------------------------------------------
原因二:数据库登录问题
PULL 模式下:
在报表的cs文件中,加上数据库连接。
1.TableLogonInfo
.使用TableLogonInfo
Dim ReportDoc As New ReportDocument()
Dim logonInfo As New TableLogonInfo
Dim table As table
ReportDoc.Load("C:\Rpts\publish.rpt")
For Each table IN ReportDoc.DataBase.Tables
logonInfo= table.LogonInfo
with logonInfo.connectioninfo
.serverName= "Localhost"
.Databasename= "pubs"
.UserID= "sa"
.Password=""
End With
table.applyLogonInfo(logonInfo)
next table
Crviewer.reportsource= reportDoc
2.如果是多個相關表格生成的報表,最好以存儲過程為數據源建立報表。
3、调试成功后,可以考虑:
将“数据库连接信息”存放在 web.config 配置文件,容易维护
using CrystalDecisions.Shared ; //负责解释TableLogOnInfo类
using CrystalDecisions.CrystalReports.Engine ; //负责解释ReportDocument类

private void Page_Load(object sender, System.EventArgs e)
{
TableLogOnInfo logOnInfo = new TableLogOnInfo ();
//这里必须事先申明一个ReportDocument对象 Report,同时加载数据报表
ReportDocument oRpt = new ReportDocument();
//获取.rpt文件真实路径
string path;
path=Server.MapPath ("cr.rpt");
oRpt.Load (path);

//从web.config中获取logOnInfo参数信息
string a,b,c,d;
//获取ServerName
a=System.Configuration.ConfigurationSettings.AppSettings ["servername"];
//获取DatabaseName
b=System.Configuration.ConfigurationSettings.AppSettings ["database"];
//获取UserId
c=System.Configuration.ConfigurationSettings.AppSettings ["userid"];
//获取password
d=System.Configuration.ConfigurationSettings.AppSettings ["pass"];
//设置logOnInfo参数
logOnInfo.ConnectionInfo.ServerName = a;
logOnInfo.ConnectionInfo.DatabaseName = b;
logOnInfo.ConnectionInfo.UserID = c;
logOnInfo.ConnectionInfo.Password = d;

oRpt.Database.Tables [0].ApplyLogOnInfo (logOnInfo);

//建立.rpt文件与CryStalReportviewer文件之间的连接
CrystalReportViewer1.ReportSource = oRpt;

DataBind();
}
---------------------------------------------------------------
原因三、PUSH 模式不需要设置 TableLogOnInfo!!!
因为数据源是 DataSet,不是数据库!!!
---------------------------------------------------------------
问题:
部署到其它计算机,产生问题:连接失败。错误的登录参数。
在开发机(2000)上运行,一切正常;移植到生产机(2003),就报错。错误提示:连接失败。错误的登录参数。
解决方案:
部署包少了点东西:
Crystal_Database_Access2003.msm
Crystal_Database_Access2003_chs.msm
这两个合并模块包含各种连接数据源的驱动。所以少了它,就老是提示登录失败(这种提示是不是很莫名其妙?)
---------------------------------------------------------------
附件:
海波.NET
问题:
安全之道:crystalreport 的集成认证如何与NT(2K)SERVER集成??
——————————————————————————————————————
安全三要素:
模拟,验证,授权
——————————————————————————————————————
如果运行 ASP.NET 程序,还需要为 ASPNET 账号——运行 ASP.NET 模拟的账号,做下述设置:

1、通过 Web 访问服务器,访问者默认“模拟”的是——Internet 来宾帐号,账号名:IUSR_计算机名;
2、“IUSR_计算机名”账号要访问 SQL SERVER,必须为该帐号建立“登录”(验证也!);
3、并授予“服务器角色”和“数据库访问许可”、“数据库角色”(授权也)!
——————————————————————————————————————
参考:
1、匿名访问 Web 所模拟的账号
账号名:IUSR_计算机名
全名:Internet 来宾帐号
描述:匿名访问 Internet 信息服务的内置帐号

2、运行 ASP.NET 模拟的账号
账号名:ASPNET
全名:aspnet_wp account
描述:运行 ASP.NET 工作进程的账号
houlinghouling 2003-10-20
  • 打赏
  • 举报
回复
难道没有人遇到过这个问题吗》

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧