《Windows Azure Platform 系列文章目录》
在本章我将介绍如果在VHD上安装JRE和Tomcat。
在前几章,我们在VHD里面已经安装了
- Windows Server 2008 R2 64bit
- IIS 7
- .NET Framework 3.5.1
在Hyper-V里,我们以管理员用户登录Windows Server 2008虚拟机
1.下载软件
- jdk-6u17-windows-x64.exe
- 安装tomcat (tomcat-6/v6.0.35/bin/apache-tomcat-6.0.35.exe),设置端口号为8080,端口号可以通过修改Tomcat 6.0\conf\server.xml中port节点进行配置
2.设置环境变量
- 桌面-->Computer-->右键-->属性--Adcanved System Settings
- System Properties --> Advanced --> Environment Variables
- 添加变量名:"JAVA_HOME", 值"C:\Program Files\Java\jdk1.X.X"
- 添加变量名:"JRE_HOME", 值"C:\Program Files\Java\jreX" .
- 添加变量名:"CATALINA_HOME",值"C:\Program Files (x86)\Apache Software Foundation\Tomcat 6.0"
3.编辑变量名:"PATH",增加值(红色部分"):"%SystemRoot%\system32; ... ;%JAVA_HOME%\bin;%JRE_HOME%\bin;%CATALINE_HOME%\BIN" .
4.下载msvcr71.dll
- 把msvcr71.dll复制到Java Bin目录下
- 把msvcr71.dll复制到Tomcat Bin目录下
- 把msvcr71.dll复制到windows\system32目录下
5.打开Tomcat,将Startup type选择成"Automatic"
6.打开浏览器,输入http://localhost:8080,如果显示如下内容,则表示启动Tomcat成功
7.在虚拟机里,点击"Start",在运行里输入"%windir%\system32\sysprep\sysprep.exe"并按回车,系统会弹出System reparation Tool。 将System Cleanup Action设置成"Enter System Out-of-Box Experience (OOBE)”,勾选"Generalize",将Shutdown Options设置成"Shutdown",然后点击"OK"
8.等虚拟机重启后,将VHD上传到Windows Azure平台。删除之前请先删除相关的Windows Azure托管服务。
9.重新打开之前创建的Azure项目,在Endpoints里Add Endpoint,命名为Http8080:
10.在VS2012里设置远程桌面连接,然后发布这个Azure 站点。
11.发布成功后,远程桌面登录Azure托管服务器,可以看到已经安装好了Tomcat,这时候访问的远程桌面连接的操作系统就是我们之前上传的VHD中的内容。
12.在远程桌面的IE里面输入http://localhost:8080,可以看到Tomcat欢迎界面
12.注意:请关闭托管服务器的防火墙。
12.在本地电脑浏览器内,输入发布后的url地址+:8080端口,就可以浏览到Azure VM Role里安装的Tomcat内容了
做一点修改
接下来,我们在Visual Studio 2010项目中,修改Endpoints节点的内容:
- 将第2行的内容做如下修改
- Name重命名为Http8888
- Public Port设置为8888
- Private Port设置为8080
- 修改成功后重新发布该站点
我们等待发布成功,然后打开IE浏览器,输入url地址+:8888端口,可以看到内容展示的是托管服务上的8080端口的内容。
注意:
- Public Port设置的是客户端连接到服务器端的端口号
- Private Port是服务器端的内部端口号
- 对于本次实例,请求是从客户端的8888端口发送,连接到Windows Azure的Public Port,然后从Endpoints进行转发,由Public Port 8888端口转发到Private Port 8080端口
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构