.net 4.6 中 Websocket 连接失败

问题描述 投票:0回答:2

我有一个与 4.5 配合良好的信号器 升级到4.6后,在Win 2008 R2上可以正常工作,但在Windows 2012上不起作用。

错误是:

    System.InvalidOperationException: WebSockets is unsupported in the current application configuration. To enable this, set the following configuration switch in Web.config:

    <system.web>
      <httpRuntime targetFramework="4.5" /> 
    </system.web>

    For more information, see http://go.microsoft.com/fwlink/?LinkId=252465.
    at  
    System.Web.Util.SynchronizationContextUtil.ValidateMode(SynchronizationContextMode currentMode, SynchronizationContextMode requiredMode, String specificErrorMessage)
    
    at System.Web.HttpContext.AcceptWebSocketRequest(Func2 userFunc, AspNetWebSocketOptions options) at Microsoft.AspNet.SignalR.Transports.WebSocketTransport.AcceptWebSocketRequest(Func2 callback)
    at Microsoft.AspNet.SignalR.PersistentConnection.ProcessRequestPostGroupRead(HostContext context, String groupsToken)
    at Microsoft.AspNet.SignalR.TaskAsyncHelper.FromMethodT1,T2,T3,TResult
    --- End of stack trace from previous location where exception was thrown ---
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
    at Microsoft.Owin.Mapping.MapMiddleware.d__0.MoveNext()
    --- End of stack trace from previous location where exception was thrown ---
    at 
    
        Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.StageAsyncResult.End(IAsyncResult ar)
        at         System.Web.HttpApplication.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
        at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

如果我将 httpRuntime targetFramework="4.5" 添加到 web.config ,应用程序将根本无法运行。

websocket signalr .net-4.6
2个回答
8
投票

添加

 <appSettings>
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true"/>
  </appSettings>

到web.config解决了问题


-1
投票

假设您在 IIS 中托管服务器,您需要在 IIS 中启用 Websocket。以下是详细信息:http://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-websocket-protocol-support

© www.soinside.com 2019 - 2024. All rights reserved.