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

日月星微 2006-07-10 07:57:30
原帖五十分:

http://community.csdn.net/Expert/topic/4871/4871662.xml?temp=.320904

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;
}
...全文
230 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
cansum396 2006-08-29
  • 打赏
  • 举报
回复
你用的不是push方式做报表...
的确是容易出现你现在出现的问题
freedomfans 2006-08-29
  • 打赏
  • 举报
回复
up
日月星微 2006-07-21
  • 打赏
  • 举报
回复
为什么没有兄弟帮我UP呀……
日月星微 2006-07-20
  • 打赏
  • 举报
回复
这个问题还是没有解决 因为其他项目停顿了一个礼拜

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

近来的兄弟一定要帮我up……
daisylh 2006-07-13
  • 打赏
  • 举报
回复
我是用VB寫的,對C#看不是很明白
我所遇到過的水晶報表登錄失敗有兩種情況:
A.版本不同,比如程式是用VS.NET2003自帶的,若安裝CR10等就可能會影響到
B.升級為VS2005時用REPORT.CLOSE取代REPORT=NOTHING出現
以上僅供參考
cuizhanjun1981 2006-07-12
  • 打赏
  • 举报
回复
帮你顶,考虑过先 把查询出来的数据放到dataset里,然后在把dataset作为数据源吗?
日月星微 2006-07-12
  • 打赏
  • 举报
回复
将水晶报表部署打包发布到Web服务器上

因为服务器不可能安装VS。NET,而水晶报表引擎集成在.NET里,所以必须做安装项目部署,我可以肯定这点没有问题

还是谢谢兄弟!
cuizhanjun1981 2006-07-12
  • 打赏
  • 举报
回复
一个干净的服务器,怎么样可以使用水晶报表???
自己做的部署包?还是怎么样做的饿?
cuizhanjun1981 2006-07-12
  • 打赏
  • 举报
回复
在帮你顶!
布袋兄,你在服务器上怎么部署的水晶报表??
日月星微 2006-07-12
  • 打赏
  • 举报
回复
用的是存储过程直接作为数据源,这样方便以后更改统计数据和报表数据

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

归根到底还是文中的这个疑问:
本地开发测试时会自动识别到局域网内的机器,但是发布到网上后呢?水晶报表登录单靠服务器名称就可以确定在www上的一台数据库机器,准确地找到数据库服务器?重名的服务器会有多少台?是不是需要将报表发布成ASMX文件?那又如何加载报表呢?
日月星微 2006-07-11
  • 打赏
  • 举报
回复
报表的路径正确

如果路径不正确将会提示加载报表失败
daisylh 2006-07-11
  • 打赏
  • 举报
回复
在服務器端報表的路徑正確嗎?
日月星微 2006-07-11
  • 打赏
  • 举报
回复
谢谢楼上的兄弟

我看了 发现是C#的windows下的报表应用,我的项目是Web的

而且都已经使用了登录信息类了

UP
daisylh 2006-07-11
  • 打赏
  • 举报
回复
微軟的參考http://support.microsoft.com/default.aspx?scid=kb%3Bzh-cn%3B319264看能否對你有幫助?
日月星微 2006-07-10
  • 打赏
  • 举报
回复
也没有人帮我UP……
日月星微 2006-07-10
  • 打赏
  • 举报
回复
up……

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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