ARR 3.0 with SignalR 2.0

原文地址:http://www.sandeepsachan.com/arr-3-0-with-signalr-2-0.html

文章主要解决Signalr在使用了ARR的服务器上使用问题;

 

Configure IIS Application Request Routing (ARR) 3 for reverse proxy and SignalR-

Infrastructure is built using windows azure as azure service(webroles). I have about 10 sub-sites running on azure. Just to abstracted from outside world I have decided to go for ARR(Application request routing) called as reverse proxy. It was all working as expected with SignalR implementation until we were using cloudapp.net url or cname mapped url to access the application. And as soon as I added a layer of ARR 3 we started with a lot of issues which we received as a support feature of ARR.

Problem:

  • IE 9 all the request were started as LongPooling instead of foreverframes(iframe)
  • IE 10 all the request were started as LongPooling instead of WebSocket
  • Chrom partial request used server side event (SSE) and partially long pooling but none of the request succeeded as websocket

Installing ARR 3 wasn’t difficult at all- We are running windows azure vm machine with windows server 2012 R2 data center. Make sure you install IIS on the machine in my case it was IIS 8.5.9600 before installing ARR.

You need to enable support for the WebSocket Protocol on Windows Server 2012 for SignalR

  • Open Server Manager(服务器管理器).
  • Under the Manage menu, click Add Roles and Features(添加角色和功能).
  • Select Role-based or Feature-based Installation(基于角色或功能的安装), and then click Next.
  • Select the appropriate server(从服务器池中选择服务器), (your local server is selected by default), and then click Next.
  • Expand Web Server (IIS)(Web服务器IIS) in the Roles tree, then expand Web Server(Web服务器), and then expand Application Development(应用程序开发).
  • Select WebSocket Protocol(WebSocket协议), and then click Next.
  • If no additional features are needed, click Next.

Now most important part to be address when you really want SignalR to work with websocket/server side event.

SignalR settings required  inside ARR 3. 

open -> Application request routing cache server proxy setting

Cache Setting
Memory cache duration (seconds)

  • Enable disk cache[uncheck]
  • Enable request consolidation[uncheck]

Query string support: [Do not cache]

Buffer Setting In Proxy

  • Response buffer: [1]
  • Response buffer threshold(KB): [0]

The above configs will impact the over cached resources for the and that will impact over performance. I will sooner come with the version 2 of the document to share my experience.

 

posted @ 2017-03-23 17:01  飞花雪月  阅读(1097)  评论(0编辑  收藏  举报