崩溃……!水晶报表服务器部署登录失败,试尽所有方法就不见效!

日月星微 2006-07-10 07:39:09
1:本地更换数据服务器名称、网页路径全部都测试通过
2:本地更换数据库名称,必须手动更新报表数据源位置
3:本地更改web.config参数,测试正常
4:制作了安装部署文件,在本地干净的Web服务器上安装测试也正常
5:上传到服务器后,安装水晶报表后首先提示密钥无效,重新安装后正常(经验)

接下来的错误就是水晶报表登录失败了,我自己在本地开发测试时也常遇到登录失败的问题,按照高手的指点已经解决了,但是这次用尽浑身解数,始终都是冷冰冰的登录失败……
1:文件夹权限已经调成了Everyone可以完全控制,还是登录失败……
2:数据用户确定可以完全访问数据库,存储过程都赋予了EXEC权限,还是登录失败……
3:本地更改数据服务器名称编译后重新传dll,还是登录失败……
4:本地更改报表.rpt文件,重新替换位置后,重新覆盖,还是登录失败……
5:打了网上下的补丁,文件名cr90dbexwin_en.zip,安装后还是登录失败……

疯了…………………………………………

已经五天了,自己辛辛苦苦做好的,却不能在网上发布正常浏览,何其痛心……
老板说再给一天机会,搞不定怕就要炒鱿鱼了,本职不保……

这几天发现了许多疑问:
1:水晶报表采用存储过程作为数据源,是否属于push模式?
2:采用存储过程在设计报表时,只需要设计时输入服务器名等参数后会自动连接打开数据库访问,这些登录参数信息感觉存储在.rpt文件里,始终有着记忆和缓存?
3:开发过程中更换数据库名,原来的报表始终调用的都是以前的数据库的数据,新建的则调用新的数据库,为什么能够互不影响,在一个报表工程里可以同时调用?
4:后来手动将报表源全部替换成了新的数据库,但是后来更换数据服务器名称却只需要修改服务器名参数就可以重新访问,为什么服务器名称参数可以不一样却可以移植?
5:水晶报表登录单靠服务器名称就可以确定在www上的一台数据库机器,准确地找到数据库服务器?重名的服务器会有多少台,但是又为什么可以找到存储过程了,而且可以校验登录用户和登录密码呢?

众多疑问…………………………………………


说明:

水晶报表开发环境:ASP.NET 1.1 + SQL SERVER 2000 + WINSERVER 2003
水晶报表版本:VS.NET自带9.15版本
采用存储过程作为报表数据源,push模式,已经加了登录参数


万谢各位!进来的帮我顶一顶,懂些的帮我看一看,会些的和我说一说,可以搞定的就拜您赐教了……


附:设计源码


1:web.config


<add key="ServerName" value="SERVERNAME"/>
<add key="DataBase" value="db"/>
<add key="UserId" value="sa"/>
<add key="Password" value="pwd"/>



2:登陆参数类

public class LogOnInfo
{
public static string _strServerName = ConfigurationSettings.AppSettings["ServerName"];
public static string _strDataBase = ConfigurationSettings.AppSettings["DataBase"];
public static string _strUserId = ConfigurationSettings.AppSettings["UserId"];
public static string _strPassword = ConfigurationSettings.AppSettings["Password"];

public LogOnInfo()
{
_strServerName = ConfigurationSettings.AppSettings["ServerName"];
_strDataBase = ConfigurationSettings.AppSettings["DataBase"];
_strUserId = ConfigurationSettings.AppSettings["UserId"];
_strPassword = ConfigurationSettings.AppSettings["Password"];
}

public static string ServerName
{
get{return _strServerName;}
}

public static string DataBase
{
get{return _strDataBase;}
}

public static string UserId
{
get{return _strUserId;}
}

public static string Password
{
get{return _strPassword;}
}
}



2:设置报表


public static ReportDocument SetReport(string pstrReportPath)
{
TableLogOnInfo logOnInfo = new TableLogOnInfo();
//这里必须事先申明一个ReportDocument对象 Report,同时加载数据报表
ReportDocument Report = new ReportDocument();

string MapPath = System.Web.HttpContext.Current.Server.MapPath('/' + pstrReportPath);

if(MapPath == null) return null;

Report.Load(MapPath);

// 对报表中的每个表依次循环。
for (int i=0;i == Report.Database.Tables.Count - 1;i++)
{
//设置logOnInfo参数
logOnInfo.ConnectionInfo.ServerName = LogOnInfo.ServerName;
logOnInfo.ConnectionInfo.DatabaseName = LogOnInfo.DataBase;
logOnInfo.ConnectionInfo.UserID = LogOnInfo.UserId;
logOnInfo.ConnectionInfo.Password = LogOnInfo.Password;

Report.Database.Tables[i].ApplyLogOnInfo (logOnInfo);
}

return Report;
}


...全文
494 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
cansum396 2006-08-29
  • 打赏
  • 举报
回复
用push
nyf1220 2006-07-24
  • 打赏
  • 举报
回复
我也想知道,帮你顶啊,,顶,,高手都不见了。
日月星微 2006-07-21
  • 打赏
  • 举报
回复
为什么没有兄弟帮我UP呀……
ChinaRedRiver 2006-07-21
  • 打赏
  • 举报
回复
帮你 up
日月星微 2006-07-20
  • 打赏
  • 举报
回复
这个问题还是没有解决 因为其他项目停顿了一个礼拜

现在重新顶出来 希望大家近来讨论 得到大家的帮助

近来的兄弟一定要帮我up……
cuizhanjun1981 2006-07-12
  • 打赏
  • 举报
回复
帮你顶,考虑过先 把查询出来的数据放到dataset里,然后在把dataset作为数据源吗?
日月星微 2006-07-12
  • 打赏
  • 举报
回复
用的是存储过程直接作为数据源,这样方便以后更改统计数据和报表数据

补充以下,用的是OLE ADO For SQL Server接口,为什么是.NET却水晶报表的数据接口却是ADO而不是ADO.NET呢?

归根到底还是文中的这个疑问:
本地开发测试时会自动识别到局域网内的机器,但是发布到网上后呢?水晶报表登录单靠服务器名称就可以确定在www上的一台数据库机器,准确地找到数据库服务器?重名的服务器会有多少台?是不是需要将报表发布成ASMX文件?那又如何加载报表呢?
copall 2006-07-11
  • 打赏
  • 举报
回复
即使在商业中使用盗版~~也是惯性使然...
boytomato 2006-07-11
  • 打赏
  • 举报
回复
其实主要是盗版的问题,这事发事责任在你们老板,为什么要在商业中用盗版
日月星微 2006-07-11
  • 打赏
  • 举报
回复
谢谢楼上两位

烦请继续帮我顶一顶帖……
Yellow198267 2006-07-11
  • 打赏
  • 举报
回复
狂晕。我也在用水晶报表,部署之后问题老多。郁闷死~~~~~~~~~~~~~~
日月星微 2006-07-11
  • 打赏
  • 举报
回复
up
boytomato 2006-07-10
  • 打赏
  • 举报
回复
水晶报表早听说不稳定.....

Crystal Reports 9.2 中文版(水晶报表) 下载,,软件版本:9.2.0.448不过现已出了Crystal Reports Professional v9.2.2.634 (c) Crystal Decisions,有足够的空间就提供.这是一个很不错的报表控件,我相信很多朋友都听说过吧!Crystal Reports 用于处理数据库,帮助用户分析和解释重要信息。使用 Crystal Reports 可以方便地创建简单报表,同时它也提供了创建复杂或专用的报表所需的整套工具。 创建所能想象的任何报表 Crystal Reports几乎可以从任何数据源生成您需要的报表。内置报表专家在您生成报表和完成一般的报表任务过程中,会一步一步地指导您进行操作。报表专家通过公式、交叉表、子报表和设置条件格式帮助表现数据的实际意义,揭示可能被隐藏掉的重要关系。如果文字和数字确实不够充分,则用地理地图和图形进行形象的信息交流。 将报表扩展到 Web Crystal Reports 的灵活性并未停留在创建报表这一功能上 ?您可以用各种各样的格式发布报表,包括用 Microsoft 的 Word 和 Excel 发布、通过电子邮件甚至 Web 发布。高级的 Web 报表功能允许工作组中的其他成员在他们自己的 Web 浏览器中查看或更新共享报表。 将报表并入应用程序通过将 Crystal Reports 的报表处理功能整合到自己的数据库应用程序中,应用程序和 Web 开发人员可以节省开发时间并满足用户的需求。Crystal Reports 支持大多数流行的开发语言,可以方便地在任何应用程序中添加报表。 不论您是 IT 行业的站点管理员,还是营销推广经理,也无论您是金融业的数据库管理员还是 CEO,Crystal Reports 都堪称是一个功能强大的工具,它可以帮助每一个人分析、解释重要信息。感谢 revenant 上传!

4,816

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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