发布网站注意事项
部属水晶报表 session模式 GDI+错误无法访问元数据库 等错误
首先在发布网站的时候,往往在本地调式的时候没有问题,发布后却无法访问。需要为服务器部署所需要的环境或程序集
确定.netframework的版本。我安转的是2.0版本也是VS2005(VS2003->1.1 VS2005->2.0 VS2008->3.5 VS2010-->4.0)+中文语言包
donetfx.exe/langpack.exe 这个可以到微软的官方网站下载
如果发布的时候
出现
Configuration Error
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.
Parser Error Message: Could not load file or assembly 'CrystalDecisions.Web, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304' or one of its dependencies. 系统找不到指定的文件。
Source Error:
Line 85: </pages>
Line 86: <httpHandlers>
Line 87: <add verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
Line 88: </httpHandlers>
Line 89: <sessionState timeout="360"></sessionState>
Source File: c:"inetpub"wwwroot"yuexiusf"web.config Line: 87
Assembly Load Trace: The following information can be helpful to determine why the assembly 'CrystalDecisions.Web, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304' could not be loaded.
WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM"Software"Microsoft"Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM"Software"Microsoft"Fusion!EnableLog].
解决方法:
1、在你的开发环境中找到Visual Studio安装目录下的"SDK"v2.0"BootStrapper"Packages"CrystalReports(C:/Program Files/Microsoft Visual Studio 8/SDK/v2.0/BootStrapper/Packages/CrystalReports(VS安装目录)),
将安装文件CRRedist2005_x86.msi(如果安转中文包 应该还有一个CRRedist2005_x86_chs.msi),复制到服务器中并安装。
安装好CRRedist2005_x86.msi后,系统会在服务器的c:/Inetpub/wwwroot/中建立一个aspnet_client文件夹。此文件夹中含有水晶报表的相关控件及图标。把aspnet_client文件夹拷贝到自己的虚拟目录的根文件夹下就可以正常显示水晶报表的工具栏图标了。
注:所以很多发布的人忽视了这一点,因为如果是部属的时候安装的时候自动安装这个文件,所以不会有这样的情况,而且都是根目录 根根!!!
2.在服务器将水晶报表注册到.NET中(不注册好像也没有问题)
1)注册:首先进入MSDOS方式(可通过“开始”-“运行...”,键入cmd,回车)。
2)将 C:/WINDOWS/Microsoft.NET/Framework/v1.0.3705 作为当前目录,
其中 C:/WINDOWS 根据操作系统的安装位置决定,v1.0.3705 根据安装的 .NET FRAMEWORK 的版本决定。
3)键入 aspnet_regiis -i。
昨天群里一位东莞的网友遇到这样的怪问题 无法访问元数据库?键入 aspnet_regiis -i。 就OK了
我直接注册的时候文件没有安装上去.我只好将文件直接拷到服务器的目录下,再注册,就可以了.目录如下:
目录1:C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/ASP.NETClientFiles/CrystalReportWebFormViewer3
目录2:C:/Inetpub/wwwroot/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer3
这两个家伙直接安装。。。
3、如果程序还不能运行,需要将水晶报表的五个dll文件复制到你的网站下的bin目录,其五大将的名称如下:
CrystalDecisions.CrystalReports.Engine.dll
CrystalDecisions.ReportSource.dll
CrystalDecisions.Shared.dll
CrystalDecisions.Web.dll
CrystalDecisions.Windows.Forms.dll
那么他们身在何处呢?答:“在你的开发环境中C:"Program Files"Common Files"Business Objects"2.7"Managed"目录下”
这样基本可以解决问题了
4.但又出现个问题就是图片不显示,数据都可以出来,找了半天原因,有的说什么路径啊,要建虚拟目录啊,但我这个是在2005下的,我在本地都没有建,想了半天,记起来,原来,系统我是早些天传上去的,因为web.config在服务器上有改动,于是我在发布的时候,没有上传,但后来用了水晶报表,里面有些东西添加了,没有改服务器上的这个文件,于是把这个文件改了下,就好了
加上了
<httpHandlers>
<add path="CrystalImageHandler.aspx" verb="GET" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" />
<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
validate="false" />
</httpHandlers>
第一个是正常要加的
第二项是项目安转了第三方插件也有水晶报表的。没有SAP的标志的!
5.测试 提示session模式不对。以前我改过session模式 改回来吧;1.配置文件stateServer 改成InProc2.或者在IIS中修改属性->asp.net -->Eidt Confri..->state Management
6.OK 访问涉及到 GDI+错误的 通常都是在服务器的存图片的文件夹没有建立或者客户端没有写入的权限
设置共享解决问题