最近用 Eclipse 开发数据库应用课程设计(Java Web),运行 Tomcat 频频报错,CMD 运行netstat -ano|findstr "8080"
,根据 PID 定位进程ApplicationWebServer.exe
,转到服务NIApplicationWebServer
,原来是之前安装 NI Multisim 惹的祸。在任务管理器的进程页选择进程后,右键“打开文件所在的位置”,跳转到目录D:\Program Files (x86)\National Instruments\Shared\NI WebServer
,的确是 NI Multisim 引起的问题。这个文件夹内可供修改的配置文件并不多,逐一排查,锁定文件NIWebAppServer.ini.defaults
,Notepad++ 打开可见:
[Server]
DAVEnabled = false
[Hosts]
Default = "Default Host"
[Default]
Enabled = true
Port = 8080
Address = "*"
[AllHosts_]
Enabled = false
SSLEnabled = false
其中就有Port = 8080
,遂改之为Port = 9090
,重启服务,然而无效……
于是求助于 Google,得到以下相关网页:
- http://www.ni.com/white-paper/12402/en/
- https://forums.ni.com/t5/LabVIEW/Turn-Off-NI-Application-Web-Server/td-p/3066695
- http://zone.ni.com/reference/en-XX/help/371361L-01/lvhowto/ws_enable_web_server/
- https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000004ALbSAM&l=zh-CN
- http://zone.ni.com/reference/en-XX/help/371361P-01/lvdialog/web_server_config_options/
- https://forums.ni.com/t5/LabVIEW/Application-Web-Server-How-to-Change-Port/td-p/3133246
综合各个方面的意见和方法,测试3种可能的解决方案:
- 在浏览器访问 NI Application Web Server 的后台管理页面,地址:
http://localhost:3582
,实测无效,404错误,疑似因为需要 Microsoft Silverlight 浏览器插件的支持,没有深入探究(毕竟 Silverlight 好像已经步入 Flash 的后尘); - 点击“Windows 徽标键 + R”,在“运行”框中输入
services.msc
后回车,打开服务管理界面,找到服务项 NI Application Web Server,先停用,后禁用,实测有效,但不知道对 Multisim 有没有副作用,似乎不会造成影响——此为笔者目前使用的解决方案; - 前文试过修改配置文件的方法,但不奏效,原因是 NI AWS 进程的配置文件的真正路径并不在安装目录下,而是在
C:\ProgramData\National Instruments\Shared\NI WebServer
,该目录下有两个文件,其中之一就是NIWebAppServer.ini
,用 Notepad++ 打开之后可见:
将[Default] Address = "*" Enabled = true Port = 8080 SSLEnabled = false [Hosts] Default = "Default Host" [Server] DAVEnabled = false
[Default]
下属的Port = 8080
修改为Port = 9090
,在任务管理器的服务页重启服务NIApplicationWebServer
,在浏览器输入http://localhost:9090
,提示404错误,表明与 NI AWS 绑定的端口号转移到了 9090,而在浏览器输入http://localhost:8080
,提示无法访问此网站,和第2种方案一样,成功解决了端口占用的问题(第2种方案的测试方法同上)。
综上所述:建议使用第 2 种方案解决 Multisim 占用 8080 端口的问题,重启之后仍然有效,无需每次调用命令行手动 taskkill NI Application Web Server 的进程。
网友评论