解决Multisim占用8080端口的问题

最近用 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种可能的解决方案:

  1. 在浏览器访问 NI Application Web Server 的后台管理页面,地址:http://localhost:3582,实测无效,404错误,疑似因为需要 Microsoft Silverlight 浏览器插件的支持,没有深入探究(毕竟 Silverlight 好像已经步入 Flash 的后尘);
  2. 点击“Windows 徽标键 + R”,在“运行”框中输入services.msc后回车,打开服务管理界面,找到服务项 NI Application Web Server,先停用,后禁用,实测有效,但不知道对 Multisim 有没有副作用,似乎不会造成影响——此为笔者目前使用的解决方案
  3. 前文试过修改配置文件的方法,但不奏效,原因是 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 的进程。

你可能感兴趣的:(解决Multisim占用8080端口的问题)