ASP.NET / SSAS / SQL Server - An existing connection was forcibly closed by the remote host

10,095

I've managed to solve the problem. Basically I just disabled impersonation for the specific methods that were causing the problem by using the solution found here:

Can I turn off impersonation just in a couple instances

Share:
10,095
CallumVass
Author by

CallumVass

Updated on June 05, 2022

Comments

  • CallumVass
    CallumVass about 2 years

    Possible Duplicate:
    Can I turn off impersonation just in a couple instances

    I've created an application that, when uploaded to my server throws an exception. It works fine locally but the moment I upload it to my server I get the following error:

    System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host
    

    Here is my connection string:

    AdomdConnection conn = new AdomdConnection("Data Source=BTN-SQL1;Initial Catalog=BTNTurboAnalysisServices;");
    

    Its worth noting that BTN-SQL1 is on a different server to my web server, could that be causing a problem? I'm also using Windows Authentication.

    Below is my stack trace:

    [SocketException (0x2746): An existing connection was forcibly closed by the remote host]
       System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) +245
    
    [IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.]
       System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) +7856541
       System.IO.BufferedStream.Read(Byte[] array, Int32 offset, Int32 count) +253
       Microsoft.AnalysisServices.AdomdClient.DimeRecord.ForceRead(Stream stream, Byte[] buffer, Int32 length) +61
       Microsoft.AnalysisServices.AdomdClient.DimeRecord.ReadHeader() +53
       Microsoft.AnalysisServices.AdomdClient.DimeReader.ReadRecord() +112
       Microsoft.AnalysisServices.AdomdClient.TcpStream.GetResponseDataType() +120
    
    [AdomdConnectionException: The connection either timed out or was lost.]
       Microsoft.AnalysisServices.AdomdClient.XmlaClient.EndRequest() +1367
       Microsoft.AnalysisServices.AdomdClient.XmlaClient.CreateSession(ListDictionary properties, Boolean sendNamespaceCompatibility) +387
       Microsoft.AnalysisServices.AdomdClient.XmlaClientProvider.Microsoft.AnalysisServices.AdomdClient.AdomdConnection.IXmlaClientProviderEx.CreateSession(Boolean sendNamespaceCompatibility) +148
       Microsoft.AnalysisServices.AdomdClient.AdomdConnection.ConnectToXMLA(Boolean createSession, Boolean isHTTP) +235
       Microsoft.AnalysisServices.AdomdClient.AdomdConnection.Open() +973
       btn_intranet.Areas.Sales.Controllers.HomeController.CumulativeChart(String month, String year) in <path to file>/HomeController.cs:52
       lambda_method(Closure , ControllerBase , Object[] ) +182
       System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +264
       System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +39
       System.Web.Mvc.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12() +129
       System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +798650
       System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +314
       System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +798704
       System.Web.Mvc.Controller.ExecuteCore() +159
       System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +335
       System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +62
       System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +20
       System.Web.Mvc.<>c__DisplayClasse.<EndProcessRequest>b__d() +54
       System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +469
       System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +375
    

    Any help would be appreciated, thanks!