PaiOA 2020 安装指南

派胜OA官网   www.paioa.com
微软技术、集大成者:微软 .NET 开发平台,C# + ASP.NET 4.x,原生 64 位,支持 SQL Server 数据库全系列。
安装步骤
实体服务器 | 云服务器_云主机 | VPS 主机
(1)安装 服务器版 Windows Server 2012、2016、2019(版本任选),数据库 SQL Server 2012、2014、2016、2017、2019(版本任选)。
(2)安装 Web 服务器(IIS)+ .NET Framework + ASP.NET 4.x。
(3)安装 PaiOA 2020 程序和数据库。
(4)为 PaiOA 2020 配置网站。

云服务器推荐
华为云阿里云

系统要求
服务器操作系统 支持的版本 .NET Framework + ASP.NET 版本
Windows Server 2008 / 2008 R2
特别提示:2020年1月14日,微软将停止更新和支持。
32位 和 64位 .NET Framework + ASP.NET 4.0 已包括
Windows Server 2012 / 2012 R2 32位 和 64位 .NET Framework + ASP.NET 4.5 或 4.6 已包括
Windows Server 2016 64位 .NET Framework + ASP.NET 4.6 或 4.7 已包括
Windows Server 2019 64位 .NET Framework + ASP.NET 4.7 已包括

服务器软件推荐
操作系统:
Windows Server 2016 Datacenter(数据中心版)、Standard(标准版)
Windows Server 2016 自带 Windows Defender 防病毒,无需安装其它防病毒软件,节省很多CPU算力。

数据库:
推荐 SQL Server 2017 全系列

服务器硬件配置推荐

经济型(500用户)
CPU 4核、内存 8G

高性能(2000用户)
CPU 8核、内存 16G

旗舰型(1万用户以上)
CPU 16核、内存 32G

硬盘:建议 60G 以上。

安装 Web 服务器(IIS)+ .NET Framework + ASP.NET 4.x

(1)使用 "服务器管理器" 安装 Web 服务器(IIS)和 .NET Framework + ASP.NET 4.x ,它是服务器版 Windows Server 核心组件。
重点:PaiOA 2020 可以在微软 .NET Framework + ASP.NET 4.0 - 4.8 任意版本下运行。
    教程:
    Windows Server 2016 安装 IIS 和 .NET Framework + ASP.NET  
    Windows Server 2012 安装 IIS 和 .NET Framework + ASP.NET

(2)如何理解 .NET Framework 版本
.NET Framework 4.x 迄今发布版本为 4.0、4.5、4.5.1、4.5.2、4.6、4.6.1、4.6.2、4.7 、4.7.1 、4.7.2 、4.8。
.NET Framework 4.0 - 4.8 都是 .NET CLR 版本 v4.0.30319,Web 服务器(IIS)显示为 .NET CLR 版本 v4.0.30319。
特别提示:不要在服务器上安装 Visual Studio 2013/2015/2017/2019 开发工具,这将会降低性能和稳定性。

(3)更新 .NET Framework 版本
在服务器版 Windows Server 上开启 "Windows 更新",自动更新 .NET Framework 版本,这是个比较聪明的策略 。

建议安装:Microsoft URL Rewrite Module(URL 重写)
如果安装 SSL 证书,可以使用 URL Rewrite 把 HTTP 重定向到 HTTPS。
官网下载  

安装 PaiOA 2020 程序和数据库
(1)首先安装数据库,打开 SQL Server 管理器,新建数据库 "PaiOA"(名称可自定义),在 SQL Server 查询分析器里执行下面的 SQL 语句,修改排序规则为 "Chinese_PRC_CI_AS",请把下面 SQL 语句中的 "PaiOA" 替换成实际的数据库名称。
如果 SQL Server 不是简体中文版,默认"排序规则" 可能是西方字符集,无法存取中文,PaiOA 2020 运行会乱码。
请将下面语句中的 "PaiOA" 替换成实际的数据库名称。
ALTER DATABASE PaiOA SET SINGLE_USER WITH ROLLBACK IMMEDIATE 
ALTER DATABASE PaiOA COLLATE Chinese_PRC_CI_AS
ALTER DATABASE PaiOA SET MULTI_USER
如下图:


点击 "PaiOA" 数据库 >> 选择【属性】 >> 进入【选项】,可以查看排序规则,必须在创建数据库表结构之前,确认 "排序规则 "正确无误。
实际上,你也可以在此界面修改 "排序规则",但是如果有数据库访问连接,可能无法修改成功。 如下图:


下一步,创建 "PaiOA" 数据库表结构,在 SQL Server 查询分析器里执行程序包中的【PaiOA.Setup.sql】。 如下图:


(2)开始安装程序,解开 PaiOA 2020 程序包【PaiOA.Webroot.zip】,将 "PaiOA.Webroot" 复制到服务器磁盘分区。
使用记事本打开 "PaiOA.Webroot" 目录下 "web.config" 文件,修改其中的 SQL Server 连接信息。
<connectionStrings>
  <add name="ConnectionString" connectionString="database=PaiOA;Data Source =localhost;User ID=sa;password=1234;Connect Timeout=60" />
</connectionStrings>
其中,我们可以修改的部分包括“database=”,“Data Source=”,“User ID=”,“password=”。
"database" 是数据库名称;
"Data Source" 是 SQL Server 数据库的主机名或IP地址;
"User ID" 是用户名;
"password" 是密码。
设定这些信息,然后保存 "web.config"。
SQL Server 知识点:
在一台计算机上可以安装运行多个 SQL Server 实例。
实例又分为 "默认实例" 和 "命名实例",一台计算机上最多只有一个默认实例,"默认实例" 没有特定的名称。
如果要访问本机 SQL Server "默认实例",使用计算机名、localhost、本机IP地址,都可以达到相同目的。
若要连接到 SQL Server "命名实例",请使用服务器名称 \ 实例名称语法。
举例(1)SQL Server 作为缺省实例安装在本机,Data Source 如下:
localhost
举例(2)SQL Server 安装在本机,实例名称为 "MSSQL",Data Source 如下:
localhost\MSSQL
举例(3)SQL Server 服务器 IP 地址为"10.1.2.3",实例名称为 "MSSQL",并且使用域名 "data.paioa.com" 指向,Data Source 有两种表达:
10.1.2.3\MSSQL
data.paioa.com\MSSQL
如下图:


(3)设置 Windows Server 操作系统的用户组【Users】对【PaiOA.Webroot\App_Data】及其子文件夹具有完全控制权限。
特别提示:PaiOA 2020 使用【App_Data】文件夹存储OA附件和文件,允许用户组【Users】完全控制,才可以完成文件的读取、写入操作。
如下图:


点击【App_Data 属性】窗口中的【高级】按钮,弹出【App_Data的高级安全设置】窗口,勾选【使用可从此对象继承的权限项目替换所有子对象的权限项目】,点击【确定】生效。如下图。

(4)系统时区设置。
PaiOA 2020 根据 "时区设置" 获取当前日期和时间,默认使用中国北京时间。
使用记事本打开 "PaiOA.Webroot" 目录下 "web.config" 文件,修改时区设置,默认"China Standard Time" 代表中国北京时间。
更多的时区请参考 微软 ASP.NET 时区索引表
<add key="MeTimeZone" value="China Standard Time" />
(5)程序和数据库安装完毕,下面开始为 PaiOA 2020 配置 IIS 网站。

为 PaiOA 2020 配置 IIS 网站

以 Windows Server 2016 为例:
(1)首先为 PaiOA 2020 创建应用程序池。打开 IIS 管理器,添加应用程序池,名称输入 "PaiOA"(名称可自定义),【.NET CLR 版本】选择 v4.0.30319,【托管管道模式】选择集成。
如下图:


(2)为 PaiOA 2020 添加网站。打开 IIS 管理器,添加网站。如下图:
【网站名称】输入 "PaiOA"(名称可自定义);
【应用程序池】选择步骤(1)创建的 "PaiOA" 应用程序池;
【物理路径】选择 "PaiOA.Webroot" 文件夹所在物理路径;
【绑定】输入主机名、IP地址和端口,如果有公网IP和域名,在主机名处配置域名,也可以稍后设置。


(3)如何访问 PaiOA 2020,笔者总结下三种访问方式,可以混合使用。
(一)使用 IP 访问
使用 "http://IP" 访问,默认端口 "80",其它端口需要使用 "http://IP:端口" 方式访问。
如果服务器位于企业内部,在企业内部使用局域网 IP 访问更快;
如果服务器有公网 IP,使用公网 IP 直接访问,无需域名无需备案。

(二)使用 HTTP 访问
绑定域名(主机名),使用 "http://域名" 访问,默认端口 "80",其它端口需要使用 "http://域名:端口" 方式访问。

(三)使用 HTTPS 访问
安装 SSL 证书,绑定域名(主机名)和端口 "443",使用 "https://域名" 访问。

下面笔者演示三种绑定方式,笔者使用域名 "oa.paioa.com" ,首先去域名注册商把A记录 "oa.paioa.com" 解析到服务器的IP地址。
打开 IIS 管理器,找到 PaiOA 网站,打开 "网站绑定" 窗口。
(3.1)使用 IP 访问
使用 IP 访问,"主机名" 设置为空的,IP 地址选择 "全部未分配" 指代服务器所有的 IP 地址,你也可以指定具体的 IP 地址。 如下图:


(3.2)使用 HTTP 访问
笔者绑定域名 "oa.paioa.com" 和端口 "80",使用 "http://oa.paioa.com" 访问。如下图:


(3.3)使用 HTTPS 访问
笔者有泛域名 "*.paioa.com" SSL 证书,安装 SSL 证书后,绑定主机名 "oa.paioa.com" 和端口 "443",使用 "https://oa.paioa.com" 访问。
主机名 "oa.paioa.com",类型 "https",端口 "443",勾选 "需要服务器名称指示",选择 SSL 证书。如下图:
如果启用 HTTPS 访问,可以使用 URL 重写把 HTTP 访问重定向到 HTTPS 访问。
教程:实现 HTTP 重定向到 HTTPS


最后,笔者混合使用三种访问方式的配置截图,仅供参考。如下图:


(4)网站配置好了,输入网站绑定的地址就可以访问了,默认OA管理员账号 admin,密码为空。
特别提醒: 无论软件激活与否,在服务器本机使用 "127.0.0.1" 访问 PaiOA 2020 ,登录进入主界面、访问OA菜单【系统管理】不受限制,这个特例方便OA管理员进行维护或排除故障。

常见问题

(1)SQL Server 不存在或访问被拒绝。用户 'sa' 登录失败。
错误原因:SQL Server 连接信息错误,当进行OA恢复、迁移时、或 SQL Server 登录信息发生更改时,需要重新设置数据库连接信息。
解决方案:
(1)检查 SQL Server 服务是否启动。
(2)使用记事本打开 "PaiOA.Webroot" 目录下 "web.config" 文件,修改其中的 SQL Server 连接信息。
<connectionStrings>
  <add name="ConnectionString" connectionString="database=PaiOA;Data Source =localhost;User ID=sa;password=1234;Connect Timeout=60" />
</connectionStrings>
其中,我们可以修改的部分包括“database=”,“Data Source=”,“User ID=”,“password=”。
database 是数据库名称;
Data Source 是 SQL Server 数据库的主机名或IP地址;
User ID 是用户名;
password 是密码;
Connect Timeout 是连接超时时间,默认60秒足够;
设定这些信息,然后保存 "web.config"。
参考下图:


(2)HTTP 错误 500.19 - Internal Server Error
说明 ASP.NET 4.x 没安装或注册,可能是 Windows Server 2012/2016/2019 添加【Web服务器(IIS)】时没仔细看,没有勾选 "ASP.NET 4.6/4.7",重新打开【服务管理器】 >> 添加角色和功能 >> 添加【Web服务器(IIS)】,勾选 "ASP.NET 4.7" 就可以了。


(3)HTTP错误 404.17 - Internal Server Error
PaiOA 2020 使用的应用程序池不是 .NET 版本 v4.0.30319 会发生此错误,大家配置应用程序池时要确认【.NET版本】选择 v4.0.30319。


(4)“/”应用程序中的服务器错误。
图中很明显【ASP.NET 版本】是 2.0,不是 4.0。
分析器错误消息: 无法识别的属性“targetFramework”。请注意属性名称区分大小写。
分析器错误信息: 无法识别的配置节“xhtmlConformance”
错误原因:PaiOA 2020 网站的【ASP.NET 版本】不是 4.0。
错误截图如下图:


解决方案:更改PaiOA 2020 网站配置的应用程序池【.NET 版本】为 v4.0.30319。

(5)用户名和密码正确,无法登录,无任何错误提示。
检查您使用的计算机或设备的时间是否正确,日期错误是无法登录的,OA服务器日期时间设置不正确,同样无法登录。

(6)尝试访问已卸载的 AppDomain。
发生原因有两种:
(1)PaiOA 2020 和其它网站使用同一个【应用程序池】,程序运行发生冲突。
(2)PaiOA 2020 运行中修改 "web.config" 或 修改OA程序文件(*.aspx、*.ascx、bin\*.dll)。
解决方案:
检查并确保 PaiOA 2020 使用独立【应用程序池】,然后 "重启启动" 网站 或 "回收"【应用程序池】。
以 Windows Server 2016 为例,打开【IIS管理器】>> 【网站】,找到【PaiOA网站】,在界面右侧点击【重新启动】即可。如下图:


打开【IIS管理器】>> 【应用程序池】,找到 PaiOA 2020 网站使用的【应用程序池】,在界面右侧点击【回收】即可。如下图:


如果仍然无法解决,请然后打开【管理工具】>>【服务】,停止【World Wide Web Publishing Service】服务的运行。
清空 "Temporary ASP.NET Files" 下全部文件后,重新启动【World Wide Web Publishing Service】服务。
请参考文章  如何清空 Temporary ASP.NET Files

特别提示:很多初次安装的用户,不仔细看完 PaiOA 2020 安装指南,IIS配置网站并没有为 PaiOA 2020 建立全新的【应用程序池】,默认的【应用程序池】可能已经被其它网站使用,或者几个网站同时使用,程序运行发生冲突,然后去“Google”错误,花费很多时间去解决。

更多信息访问PaiOA官网    http://www.paioa.com