服务端部署
===
## 服务端
### 服务的部署文件夹结构
- ClientFiles 存储用户上传文件
- ClientScenarioes 存储用户模型方案
- server 存放web应用,wcf服务、python
### 服务的运行环境
- windows 操作系统
- 功能与组件模块安装.net 3.5, wcf服务
- 安装.net 4.5.2 / .net 4.7.2 (dhi 接口依赖)
#### 基本安装
- 安装 sql server, 附加aspnetjip数据库文件
- 安装 mysql 最新版 [下载](https://dev.mysql.com/downloads/mysql/),逐步将sql相关数据库迁移至mysql
- 安装mysqlconnector[下载](https://downloads.mysql.com/archives/c-net/),注意版本8.0.30
- 安装 ado.net for sql server 驱动,odbc
- 安装 node.js 最新版
- 安装 python 3.9
- 安装 [miniconda](https://docs.conda.io/en/latest/miniconda.html)
- 安装 nginx [下载](https://nginx.org/en/download.html)
#### 应用依赖
根据项目情况安装相关依赖
- mike 2014 32位&64位,server服务器只能安装2012,安装32位即可。2014会强制成网络许可。
- HEC-RAS 5.0.5 安装
- python 安装相应的包
- 修改conda源地址为阿里云镜像
```
conda install gdal=3.4.2
conda install geopandas=0.10.2
python pip_install.py # 其他依赖包
```
- 如涉及orale、mysql,则安装相应数据库及.net访问驱动
- DHI.TimeSeries.dll 注意引用版本,服务器位MIKE 2012,对于版本 11.0.0.3073
#### 后台安装
- 后台文件夹结构
```
--Sypcloud_server
├─ClientFiles
├─ClientScenarioes
│ ├─ed09d293-a173-4f71-8aec-e88807c403bf
│ │ └─efdc
└─server
├─bin
├─binEx
├─config
├─nginx
├─OpenRoC
├─preinstall
├─python
│ ├─psyp
│ ├─py_api
└─webapp
```
- python web service
```
拷贝py_api文件夹到服务端
```
- wcf web service
### 服务端部署、Webservice服务运行问题解决
- 关于dfs0相关接口调用出现com组件注册问题时,是因为接口位x86的,安装32位mike
- nginx如果启动不了,下载安装个新的,如还不行,查看是否端口被占用。
## 客户端
### 安装
- [下载嗖嗖客户端](http://www.toolsbox.org.cn)
- [浏览器访问](http://appcenter.toolsbox.org.cn/)
### 客户端运行问题解决
- 用户名、密码正确,但登录认证不过去,检查是否本地网络有vpn代理等在运行,关闭即可。
## 在本地部署服务端+客户端
### 配置
- git clone
- 将整个文件夹拷贝至本地磁盘,建议 D:\\
- 记事本打开SY.WcfService.Console.exe.config.local,修改以下配置的本地路径
```html
<appSettings>
<add key="ClientFilesStorage" value="d:/sypcloud_server/ClientFiles" />
<add key="ClientScenarioesStorage" value="d:/sypcloud_server/ClientScenarioes" />
<add key="EfdcBaseFile" value="D:/4Code/sycloud/SYAPP/trunk/syapp/Module/EFDC/efdc.inp" />
<add key="CesiumwebHostStorage" value="D:/4Code/sycloud/SYAPP/trunk/syapp/ACEE.Asp/Cesium/GridJson" />
<add key="Mike11FloodForecastingBaseModel" value="D:/4Code/ModelTutorial/MIKE/Examples/MIKE_11/Liver/liver.sim11" />
<add key="XLYHSYBModelRuntimDLL" value="D:/4Code/sycloud/SYAPP/trunk/modelbase/XLYHSYB" />
<add key="MIKEModelEngineDir" value="D:/anzhuangwenjian/DHI/2014/bin/x64" />
<add key="ParallelMode" value="OMP"/>
<add key="PythonEngine" value="d:\python\python.exe"/>
<!--utility function needed, arcpython-->
<add key="PythonModelEngine" value="d:\python\python.exe" />
<!--开源python -->
<add key="PythonEngine2" value="d:\python\python.exe" />
<add key="PythonModelConfig" value="D:\sypcloud_server\server\python\main.py" />
</appSettings>
```
- 记事本打开SY.WcfService4Http.Console.exe.config.local,修改以下配置的本地路径
```html
<appSettings>
<add key="ClientFilesStorage" value="d:/sypcloud_server/ClientFiles" />
<add key="ClientScenarioesStorage" value="d:/sypcloud_server/ClientScenarioes" />
<add key="EfdcBaseFile" value="c:/Module/EFDC/efdc.inp" />
<add key="CesiumwebHostStorage" value="C:/inetpub/wwwroot/acee/Cesium/GridJson" />
<add key="Mike11FloodForecastingBaseModel" value="C:/projects/gxzyjly_model/南宁洪水预报.sim11"/>
<add key="XLYHSYBModelRuntimDLL" value="D:/4Code/sycloud/SYAPP/trunk/modelbase/XLYHSYB"/>
<add key="MIKEModelEngineDir" value="c:/Program Files (x86)/DHI/2012/bin"/>
<add key="ParallelMode" value="OMP"/>
<!--一系列不同编制单元模板模型根目录,http访问时,以下路径不能有中文路径,否则模型不识别-->
<add key="ScenarioTemplateRoot" value="e:/project/ModelTemplate" />
<!--所有编制单元所有方案根目录,http访问时,以下路径不能有中文路径,否则模型不识别-->
<add key="ScenarioRoot" value="e:/project/Scenarios" />
<add key="ServerHostPath" value="C:/inetpub/wwwroot/gxdss" />
<!--utility function needed, arcpython-->
<add key="PythonModelEngine" value="C:\Python39\python.exe" />
<!--开源python -->
<add key="PythonEngine2" value="C:\Python39\python.exe" />
<add key="PythonModelConfig" value="D:\sypcloud_server\server\python\main.py" />
</appSettings>
```
- 修改完后,运行config.bat
- 运行nginx.bat(运行完后,在任务进程中查看是否有nginex.exe进程)
- 运行run.bat(查看是否有错误提示)
- [下载嗖嗖客户端](http://www.toolsbox.org.cn)
- 利用evertything工具在本地搜索SYApp.WPF.exe.config,将SYApp.WPF.exe.config.local去掉.local后替换本地文件
- 运行SYApp.WPF.exe(查看首页界面是否有显示已联机)
### 运行
- Web端,浏览器直接键入:http://localhost:8081,直接登录
- 桌面端,双击SYApp.WPF.exe,以用户名ss,密码123登录
### 常用便捷工具
- 安装git-scm
- 安装everything
- 安装notepad++
## SWMM耦合MIKE11云端计算及结果查看管理系统APP使用说明
- 全本地化部署如上述本地部署所示
- 部署完成后,先启动桌面端,以用户名ss登录
- 进入后,点击【功能大全】,鼠标滑动,找到【云端计算】,点击【SWMM耦合MIKE11模型】标签页
- 点击【浏览】将本地耦合模型压缩包上传
- 耦合模型包遵循一定格式要求
> m11 (内部只含一个sim11文件)<br/>
> swmm (内部只含一个inp文件)<br/>
> swmm-m11-map.xlsx (swmm模型子汇水区流程节点编号与与之关联的Mike11边界文件里的PointSource边界最后一列ID严格匹配)
- 点击【提交计算】,软件将模型包上传至服务端并计算,同时输出日志信息到客户端运行日志
- 计算完成后,结果将自动推送到Web端模型管理系统
> [本地](http://localhost:8081)
###### tags: `服务端部署`
## 简易离线服务端部署
### Python环境
- 安装 python 3.9
- 安装 [miniconda](https://docs.conda.io/en/latest/miniconda.html)
- 修改python环境变量,确保指向安装的miniconda python
- 安装离线包
```
pip install --no-index --find-links /path/to/download/dir/ -r requirements.txt
```
### 数据库
- 安装 mysql 最新版 [下载](https://dev.mysql.com/downloads/mysql/),逐步将sql相关数据库迁移至mysql
- 安装mysqlconnector[下载](https://downloads.mysql.com/archives/c-net/),注意版本8.0.30
- 导入数据库