IIS托管了Web核心和websockets

时间:2013-08-13 08:45:02

标签: asp.net websocket asp.net-4.5 iis-8

我有一个使用ASP.NET 4.5的新WebSocket功能的Web应用程序。我有一个自定义处理程序,它执行以下操作:

public class WebsocketHandler : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        if (context.IsWebSocketRequest)
        {
            context.AcceptWebSocketRequest(WebSocketRequest);
        }
    }

    public bool IsReusable { get { return false; } }

    private async Task WebSocketRequest(AspNetWebSocketContext context)
    {
         //Processing
    }
}

当我在IIS 8上托管我的应用程序时,这很有效,但是当我在IIS托管的Web核心中运行此应用程序时,IsWebSocketRequest属性始终为fasle

因此,questin是:IIS 8托管的Web核心是否支持websockets,如果有,我需要做些什么才能启用它?

1 个答案:

答案 0 :(得分:1)

好吧,我已经发现HWC 确实支持 WebSockets,因为IIS Express 8确实如此,而且它基本上是HWC的包装器。之后我检查了IIS Express applicationhost.config,发现有一些我错过的东西。

我对HWC applicationhost.config所做的更改的完整列表如下所示:

  • <section name="webSocket" overrideModeDefault="Deny" />元素添加到<sectionGroup name="system.webServer">
  • <configSections>
  • <webSocket />元素添加到<system.webServer>
  • <add name="WebSocketModule" image="%windir%\System32\inetsrv\iiswsock.dll" />元素添加到<globalModules>
  • <add name="WebSocketModule" lockItem="true" />元素添加到<modules>

之后,Websockets就像魅力一样。

相关问题