IIS安装ARR反向代理插件 未能加载文件或程序集

/ 0评 / 0

 今天想在服务器上安装一个TOMCAT,因为已经有IIS。所以想通过反向代理方法实现。

了解到微软IIS有一个插件与NGINX是一个功能,虽然说NGINX在网上都说性能爆炸怎么样的,但IIS已经占用80端口,不想再改。所以直接用ARR了。

安装ARR的时候,需要解决依赖问题,在下载界面最下方有介绍,https://www.iis.net/downloads/microsoft/application-request-routing

需要三个依赖

URL Rewrite
Web Farm Framework
External Cache module

而这三个依赖安装的时候,又需要其他依赖,不过慢慢装就行了。只要全装上,不会有问题。有中文选中文,没中文就用英文。

但我这里出了一些小问题。全部安装好后,IIS提示   未能加载文件或程序集

IISMANAGER_MODULE_INITIALIZATION_THREW_EXCEPTION

“ApplicationRequestRouting”类型的模块“Microsoft.Web.Management.Arr.ArrModule, Microsoft.Web.Management.Arr.Client, Version=7.2.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”的 Initialize 方法引发了异常。

异常:System.IO.FileNotFoundException: 未能加载文件或程序集“Microsoft.Web.Management.WebFarmClient, Version=7.1.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。系统找不到指定的文件。
文件名:“Microsoft.Web.Management.WebFarmClient, Version=7.1.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”
在 Microsoft.Web.Management.Arr.ArrModule.Initialize(IServiceProvider serviceProvider, ModuleInfo moduleInfo)
在 Microsoft.Web.Management.Client.Connection.Initialize(WebManagementInfo webManagementInfo)

刚开始以为是文件权限问题,整了半天没用,后来重装也没用。

最后在事件日志里发现提交错误报告时的介绍里写的.NET 2.0 模式:经典。而百度搜索此类问题的解决方法都是需要将应用程序池改为兼容32位。但我设置完之后没用。

后来把所有应用程序池改为集成,就可以用了。

ARR全称:Application Request Routing Cache

使用方法,点IIS根目录,双击Application Request Routing Cache,以右侧点开启服务代理,应用即可,不需要设置,默认即可。

然后在需要反向代理的网站上配置一下URLWrite即可。

写法:

新建空白规则

名称随意

模式:^(.*)   //所有请求

条件:{HTTP_HOST} 访问域名

{HTTP_HOST}不带WWW的访问域名

//任一匹配

重写:http://127.0.0.1:8080/{R:1}

就可以了,这样的好处是IIS还是IIS,也不影响IIS中的其他站。而且TOMCAT是独立的与IIS无关,你可以在TOMCAT里面随意建站修改配置文件等等。也可以在IIS里随意建站.相互不影响。

当你需要JSP站的时候,在TOMCAT把端口改了,不要设置主机头,因为不行,

然后在IIS新建网站,指定任意目录,但需要能读取的,因为要读取web.config文件来实现反向代理。。

按上面写法写入规则,重写后的端口改为新TOMCAT站的端口即可。反正外面看不到,所以端口无所谓了。只要不跟系统或其他软件冲突就行。

防火墙也不需要开8080等TOMCAT的端口,因为这里是内部反向代理,根本不需要外网。

发表评论

电子邮件地址不会被公开。 必填项已用*标注