Windows Server 2003 無法布署.NET Framework4.5 應用解決方案


一、背景描述

業務服務器操作系統為Windows Server 2003,已運行幾套業務系統,均基於.NET Framework3.0,4.0,近期新開發項目是基於.NET Framework 4.5,但Win2003無法安裝.NET Framework4.5框架,新項目框架又不能降級。服務器只有一個對外IP,IP再不能新增。在不影響原有系統的運行,又能讓新項目正常上線,問題該如何解決???

二、解決方案

在Windows 2003服務器安裝虛擬機,虛擬機安裝Win2008(X86)(因服務器是32位操作系統,虛擬機也只能安裝32位Win2008),將新項目布署至虛擬機,外部通過win2003物理機訪問win2008虛擬機。

詳細解決方法如下

三、技術步驟:

1、下載免費虛擬機軟件Oracle VM VirtualBox 5.1.8,並增加虛擬機“Win2008R2”,具體安裝過程略過(網上大把資料)。

2、虛擬機網絡設置,重點,其中win2003物理機IP:192.168.56.1,win2008虛擬機IP:10.0.2.15,

網卡連接方式:網絡地址轉換(NAT),並設置端口轉發規則(新項目使用服務器80端口,可根據實際情況設置),至此,物理機可正常訪問虛擬機80端口,如圖

3、將新項目布署至win2008R2虛擬機,項目占用80端口,在虛擬機測試項目運行正常。

4、在win2003物理機安裝Nginx,做為請求轉發,將win2003服務器80端口的請求轉發至win2008R2虛擬機80端口,具體Nginx安裝及配置略過。

轉發過程:外網請求-----win2003外網IP(x.x.x.x)--------win2003內網IP(192.168.56.1)-----win2008R2(10.0.2.15)

 四、優化

1、Nginx 設置為Windows服務,開機啟動:

借助"Windows Service Wrapper"小工具,項目地址: https://github.com/kohsuke/winsw

下載地址: http://repo.jenkins-ci.org/releases/com/sun/winsw/winsw/1.18/winsw-1.18-bin.exe

下載該工具后,將其放在 Nginx安裝目錄下,並重命名為nginx-service.exe,創建配置文件nginx-service.xml(名字要和工具名一樣),

創建nginx-service.exe.config(為支持NET 4.0 runtime,默認只支持NET 2.0 runtime),結構如下:

nginx-service.xml 內容如下:

 1 <service>
 2     <id>nginx</id>
 3     <name>Nginx Service</name>
 4     <description>High Performance Nginx Service</description>
 5     <logpath>C:\nginx\nginx-1.8.1\logs</logpath>
 6     <log mode="roll-by-size">
 7         <sizeThreshold>10240</sizeThreshold>
 8         <keepFiles>8</keepFiles>
 9     </log>
10     <executable>C:\nginx\nginx-1.8.1\nginx.exe</executable>
11     <startarguments>-p C:\nginx\nginx-1.8.1</startarguments>
12     <stopexecutable>C:\nginx\nginx-1.8.1\nginx.exe</stopexecutable>
13     <stoparguments>-p C:\nginx\nginx-1.8.1 -s stop</stoparguments>
14 </service>

nginx-service.exe.config 內容如下:

1 <configuration>
2     <startup>
3         <supportedRuntime version="v2.0.50727" />
4         <supportedRuntime version="v4.0" />
5     </startup>
6     <runtime>
7         <generatePublisherEvidence enabled="false"/>
8     </runtime>
9 </configuration>

在cmd中運行如下命令安裝windows服務:c:\xxx\nginx-service.exe install  (卸載c:\xxx\nginx-service.exe uninstall)

2、將Win2008R2虛擬機設置為開機啟動,通過服務方式報錯,無法實現。通過“程序---啟動”實現,啟動腳本如下:

1 @echo off
2 cd D:\Program Files\Oracle\VirtualBox
3 VBoxManage startvm Win2008R2 -type headless
4 pause
5 exit

 

至此,問題完美解決。如有更好方案.......,請指教。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM