刚学WSS不久,之前在测试服务器上面做了个自定义页面的WSS网页,需要把它发布到生产服务器上面。这篇文章只是记录了发布的一些需要注意的步骤,仅作为今后可以回头参考的资料,可能不是很正规的做法。备忘而已。
1、把编译好的源码从测试环境拷贝到生产服务器上面
2、由于在生产环境服务器上面没有安装VS2008,需要先把GAC注册工具也拷贝到生产服务器上面
3、修改部署文件的批处理文件,把Gacutil的路径修改成步骤2实际保存的路径
4、运行Intall.bat文件,进行工程各种文件的拷贝和注册DLL,安装Feature
5、尝试访问自定义的页面,此时系统报错,原因是还缺少一些文件。因为这些文件分散在测试环境里,在第一次部署的时候,不知道这些文件应该放在哪个地方。通过这个模拟的部署过程,就可以了解这些文件哪些是必须的,哪些是可以省略的。今后就可以花时间做一个安装包,直接运行安装包即可。
6、由于之前修改过子网站的几个MasterPage,需要把这几个MasterPage也拷贝到生产服务器上面
7、然后在生产服务器上面的SiteCollection上面创建那些业务上需要的列表
8、创建文档库
9、创建图片库
10、打开生产服务器上面的WSS站点的web.config文件,配置Sefecontrol节点,把工程生成的DLL配置成SafeControl
11、修改web.config文件,使WSS站点增加Ajax的支持
12、配置完Ajax后,之前创建的Admin页面已经可以运行了
13、其他页面还是出错
14、由于工程中使用到Enterprise Library,需要把用到的DLL在生产环境的GAC中进行注册,先把相关的DLL拷贝过来
15、用Gacutil这个工具将以下几个DLL注册到GAC
16、Admin页面里面的按钮也可以运行了,Sales和Brand的数据已经被成功初始化
17、修改web.config文件,使WSS站点能够使用Session
18、把工程用到的两个sitemap文件也拷贝到生产服务器上面
19、配置Sitemap Provider
20、Search页面也可以运行了,但是由于一些图片的路径不对,没有正确显示。这是由于代码里面直接指定了服务器的名字造成的,今后要花时间把它们写到CSS里面,不能偷懒;
21、把缺少的图片也拷贝过来
22、用Gacutil注册工程用到的第三方工具,这些DLL可以帮助我们用select * from xxx之类的语法查询WSS的自定义列表里面的数据,非常方便。
23、但是按Search页面里面的按钮,仍然出现错误。Ajax把相应的错误信息给屏蔽掉了,光看以下提示,不知是什么地方出错。
24、经查,上面步骤出错,是因为我们使用到了Session来存放一些业务上的数据;
25、把Ajax屏蔽掉后,真正的错误原因显示出来了,原来是我们定义的TrimsPhoto类没有定义成可序列化的类。但是之前在测试服务器上面,同样没有定义成可序列化的类,为何能正常运行呢?这肯定是生产服务器上面web.config里面的配置和测试服务器上面的配置不一样。区别点在哪里呢?
26、通过一番查找和比较,终于发现在生产服务器上面有一行sessionState的配置,这个配置把Session的模式设置成了SQL Server。这就要求所有放在Session里面的对象必须能够被序列化。原因在此,于是干脆把这行代码给注释掉。
27、之前用Sharepoint Designer 2007修改过测试服务器上面的几个MasterPage,把一些不需要显示的内容隐藏起来了。也需要把这两个文件拷贝到生产服务器上面。先把这两个MasterPage从测试服务器上面下载下来。
28、然后上传到生产服务器上面
29、更换各个页面的MasterPage的路径
30、至此,自定义的页面已经可以运行了。