【分享】CloudV6如何发布WebService站点
金蝶云社区-五竹
五竹
0人赞赏了该文章 4957次浏览 未经作者许可,禁止转载编辑于2020年02月13日 08:41:06
声明:此帖仅作为技术研究,至于是否采用,用户自行评估。

在IIS建站方面有两种渠道,一种是纯手工创建,一种是工具创建,结果一样,但为了减少工作量,建议使用工具。 在默认安装的Cloud环境中并没有SI站点,需要自己创建,而Cloud提供了一个工具:Kingdee.BOS.ServiceInterface.Install.exe,该工具在安装目录的Kingdee\K3Cloud\Tools\SITool文件夹下。 现打开该工具,选择数据中心,网站选择Default Web Site,虚拟目录建议填写K3CloudServiceInterface,发布位置无需更改(即Cloud安装目录),信息录入完毕后单击【发布】按钮,如图-1所示。

图-1 发布工具 等到弹出的BOS窗口执行完毕后,在工具界面会提示:K/3 Cloud WebService站点发布成功,如图-2所示。

图-2 站点发布成功 但仅仅到了这一步是不够的,因为此时访问SI站点或metadata服务接口网页时可能会出现报错(报错可能因为详细信息不同而有很多种)。比如下面这种,如图-3所示。

图-3 访问SI站点报错 进入IIS管理器,在应用程序池中找到K3CloudServiceInterface,将托管管道模式改为【经典】并保存,如图-4所示。

图-4 托管管道模式改为【经典】 如果配置操作系统的IIS版本大于或等于7,则需要找到SI站点下的两个配置文件,名称分别为“Web.config”和“Web_IIS7.config”,此时需要做的是将后者的文件名改为前者,前者随意更改一个不同名的文件即可(实际相当于替换配置文件内容),如图-5所示。

图-5 更改配置文件名称 找到节点,将该节点中的内容替换掉,如图-6所示。

图-6 替换字段信息 上图6-红色框中为替换后的内容,附上文本内容: 64\v4.0.30319\aspnet_isapi.dll"resourceType="Unspecified" preCondition="classicMode,runtimeVersionv4.0,bitness64" /> 当服务器操作系统为64位的情况下可以这样替换,但假如服务器是32位(一般是测试环境),则需要将上文中红字部分的两个“64”去掉,保存后重启IIS。此时再访问http://localhost/K3CloudServiceInterface/metadata可能出现404的错误提示,如图-7所示。


图-7 404错误提示 原因是网站处理程序映射中脚本映射缺失或设置有误,单击SI站点进入“处理程序映射”,根据系统版本32还是64位,确认是否存在对应的脚本映射,下面以64位服务器为例,确认是否存在名为“SI_64BIT”的脚本映射,路径为 Framework64目录的aspnet_isapi.dll组件,且确认请求路径为"*",如果没有,需要手工添加,如图-8所示。


图-8 添加脚本映射
添加完成后再访问http://localhost/K3CloudServiceInterface/metadata则可以看到发布的接口列表了,如图-9所示。

图-9 发布成功 需要补充说明的是,对于创建SI站点过程中选择数据中心这一步必须确保所选数据中心与Cloud当前环境的补丁一致,否则访问接口网页时会提示报错,如图-10所示。

图-10 访问报错 于是问题来了:如果在使用工具并选择数据中心的时候选错了怎么办?如何在不重新部署的前提下解决问题?解决方法:找到安装目录的Kingdee\K3Cloud\K3CloudServiceInterface\App_Data文件夹下的Common.config文件,右键选择【编辑】,找到“”这样一行(后面的字符串是数据中心ID,接下来会提到),如图-11所示。

图-11 找到配置文件的相应字段 再打开SQL ServerManagement Studio,找到管理数据库并执行下列语句:select * from t_bas_datacenter_l 该语句用于查询数据中心列表信息,找到所选数据中心的FDATACENTERID值,如图-12所示。

图-12 查找数据中心ID 复制该值后,替换至上文提及字段的value值,保存并重启IIS,配置完成。