WCF response too long - authentication error - asp.net

In the project that I currently work for, there is exposed a WCF service which returns an array of a business entity, let's call it Invoice :
Invoice[] GetInvoicesByTypeAndTime(InvoiceType invoiceType, byte startHour, byte? endHour);
The authentication mechanism used is Windows Authentication, the WCF service is hosted in a Web Application hosted on IIS 6.
At first when I used to get data more than 64kB a CommunicationException was thrown stating that "The maximum message size quota for incoming messages (65536) has been exceeded. To increase the quota, use the MaxReceivedMessageSize property on the appropriate binding element."
Fine, I just increased in App.config the values to 65536000 (I blatantly added three zeros at the end) for both maxReceivedMessageSize and maxBufferSize (the latter because it complained in an ArgumentException that "For TransferMode.Buffered, MaxReceivedMessageSize and MaxBufferSize must be the same value.
Parameter name: bindingElement").
Now I could receive larger responses...
Until I hit another limit (I THINK) in that after 624 elements (approx. 2.2 MB) a strange exception is thrown :
System.ServiceModel.Security.MessageSecurityException: The HTTP request is unauthorized with client authentication scheme 'Negotiate'. The authentication header received from the server was 'Negotiate,NTLM'. ---> System.Net.WebException: The remote server returned an error: (401) Unauthorized.
at System.Net.HttpWebRequest.GetResponse()
at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
--- End of inner exception stack trace ---
Server stack trace:
at System.ServiceModel.Channels.HttpChannelUtilities.ValidateAuthentication(HttpWebRequest request, HttpWebResponse response, WebException responseException, HttpChannelFactory factory)
at System.ServiceModel.Channels.HttpChannelUtilities.ValidateRequestReplyResponse(HttpWebRequest request, HttpWebResponse response, HttpChannelFactory factory, WebException responseException)
at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at Test2.DBS.IDbService.GetInvoicesByTypeAndTime(InvoiceType invoiceType, Byte startHour, Nullable`1 endHour)
at Test2.DBS.DbServiceClient.GetInvoicesByTypeAndTime(InvoiceType invoiceType, Byte startHour, Nullable`1 endHour) in D:\TEMP\Test2\Test2\Service References\DBS\Reference.cs:line 1445
at Test2.Program.Main(String[] args) in D:\TEMP\Test2\Test2\Program.cs:line 19
Is there a limit on authenticated responses? Is there a limit from the ASP.NET settings?

I'm guessing that you're using Windows Authentication hence the 401 rather than a message explaining how you've blown your message limits. When you send through a Windows Authenticated request, WCF sends the SOAP request twice, once for it to fail and return an accepts header, and the second time to send it with the Windows Authentication headers.
However, from my testing, it looks like you still get the 401 if the message would have actually failed if it did get through.
To troubleshoot this, I had to put server trace logging in:
<system.diagnostics>
<trace autoflush="true" />
<sources>
<source name="System.ServiceModel" switchValue="Critical, Error, Warning">
<listeners>
<add name="traceListener" type="System.Diagnostics.XmlWriterTraceListener" initializeData="C:\Logs\ServiceTrace.svclog"/>
</listeners>
</source>
</sources>
</system.diagnostics>
Then, I had to put in larger reader quotas, as above (but I used smaller values):
Then you generally have to put in a custom behaviour to increase the maximum number of items in an object graph:
<behaviors>
<serviceBehaviors>
<behavior name="MaximumItemsBehaviour">
<dataContractSerializer maxItemsInObjectGraph="2147483647" />
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpsGetEnabled="true" httpGetEnabled="false" />
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
You'll need to add a "behaviourConfiguration" attribute to your "<system.serviceModel><services><service>" element with the value "MaximumItemsBehaviour".
Other advice I read, but didn't need myself was to add:
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpRuntime maxRequestLength="2097151" />
</system.web>
And:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="209715200"/>
</requestFiltering>
</security>
</system.webServer>

Take a look at readerQuotas on the client side, if you want the TLDR version - to see if this is indeed your issue, you can set the max's (Int32.MaxValue) as shown below.
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />

Related

Mule - HTTP Post - Timeout Exceeded

This is my basic mule flow:
HTTP Listener > Logger > Http Request > Logger (Result message)
<http:request-config name="HTTP_Request_Configuration" host="localhost" port="8080" doc:name="HTTP Request Configuration" usePersistentConnections="false"/>
<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration"/>
<flow name="servoy-restFlow">
<http:listener config-ref="HTTP_Listener_Configuration"
path="/" doc:name="HTTP" />
<logger message="#[message.payloadAs(java.lang.String)]" level="INFO"
doc:name="Logger" />
<http:request config-ref="HTTP_Request_Configuration"
path="service/rest/request" method="POST"
doc:name="HTTP" />
<logger message="#[message.payloadAs(java.lang.String)]" level="INFO"
doc:name="Logger" />
</flow>
But it returns an error about timeout exception:
********************************************************************************
Exception stack is:
1. Timeout exceeded (java.util.concurrent.TimeoutException)
com.ning.http.client.providers.grizzly.GrizzlyAsyncHttpProvider:426 (null)
2. Error sending HTTP request. Message payload is of type: String (org.mule.api.MessagingException)
org.mule.module.http.internal.request.DefaultHttpRequester:287 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/MessagingException.html)
********************************************************************************
Root Exception stack trace:
java.util.concurrent.TimeoutException: Timeout exceeded
at com.ning.http.client.providers.grizzly.GrizzlyAsyncHttpProvider.timeout(GrizzlyAsyncHttpProvider.java:426)
at com.ning.http.client.providers.grizzly.GrizzlyAsyncHttpProvider$3.onTimeout(GrizzlyAsyncHttpProvider.java:274)
at org.glassfish.grizzly.utils.IdleTimeoutFilter$DefaultWorker.doWork(IdleTimeoutFilter.java:398)
at org.glassfish.grizzly.utils.IdleTimeoutFilter$DefaultWorker.doWork(IdleTimeoutFilter.java:377)
at org.glassfish.grizzly.utils.DelayedExecutor$DelayedRunnable.run(DelayedExecutor.java:158)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
********************************************************************************
What should I do to avoid the timeout?
The default timeout of http outbound request is 30 seconds specified in ms in mule. Increase timeout of http-request config to greater than 30 seconds, may be to start with 40 seconds and see what's your desired number.
<http:request-config responseTimeout="40000" .../>
Try increasing the timeout in:
<http:request-config responseTimeout="XYZ" />
Taking another approach to this problem...
Do you have an issue with the service you are trying to consume and it's not responding. I've always found the default timeout to be sufficient (even for calling external services).
You can set Timeout for your entire application configuring a global deafult timeout property at the beginning of your .xml, in example:
<configuration defaultTransactionTimeout="90000" defaultResponseTimeout="90000" doc:name="Configuration">
<default-threading-profile poolExhaustedAction="RUN"/>
</configuration>
I hope this helps.
Where you receive the POST request - maybe a method or microflow, there is actions that happen first and after that the POST is executed. If you cannot change the logic there and remove them, just increase the timeout in the request configuration in Mule.

Error in maximum message size quota for incoming messages (65536)

I have above error on call webservice function (for example GetUserInfo). this function returns alot of data but not more than 65KB also i set maxReceivedMessageSize to 2000000000 on my config in client. ServiceModel of my config file is :
<system.serviceModel>
<bindings>
<customBinding>
<binding name="AAAServerSoap12Binding">
<textMessageEncoding maxReadPoolSize="2000000000" maxWritePoolSize="2000000000"
messageVersion="Soap12">
<readerQuotas maxDepth="32" maxStringContentLength="2000000000"
maxArrayLength="2000000000" maxBytesPerRead="2000000000" maxNameTableCharCount="2000000000" />
</textMessageEncoding>
<httpTransport maxBufferPoolSize="2000000000" maxReceivedMessageSize="2000000000"
maxBufferSize="2000000000" />
</binding>
</customBinding>
</bindings>
<client>
<endpoint address="http://10.187.110.5:8280/services/AAAServer.AAAServerHttpSoap12Endpoint"
binding="customBinding" bindingConfiguration="AAAServerSoap12Binding"
contract="AAAServiceReference.AAAServerPortType" name="AAAServerHttpSoap12Endpoint" />
</client>
</system.serviceModel>
every time i got this error i save xml result of GetUserInfo to a file and that file was 24KB - 50KB) , and never reaches to 65KB or more. Error is
Server was unable to process request. ---> The maximum message size quota for incoming messages (65536) has been exceeded. To increase the quota, use the MaxReceivedMessageSize property on the appropriate binding element. ---> The maximum message size quota for incoming messages (65536) has been exceeded. To increase the quota, use the MaxReceivedMessageSize property on the appropriate binding element.
thanks

Application pool is being automatically disabled due to a series of failures in the process(es) serving that application pool

This website is hosted shared hosting 'Windows Server 2012', The website stopped working and give me general "Service Unavailable" error. I contacted the support they said "Currently, your site is working fine. You have availed additional Application pool memory for your site. When the application memory allocated to the site reaches to the maximum limit your site will stop. In this case, you will need to check the script/code of your VPS. We have attached logs for this matter along with this response.", Now the website is going down again and again. Also, I checked the website files and found many files are with a strange name that I do not have any idea about them!!. Please help me to solve this problem.
This is what the logs file said:
Application pool 'sceryemen.com v4.0 (Classic)' is being automatically disabled due to a series of failures in the process(es) serving that application pool.
Log Name: Application
Source: ASP.NET 4.0.30319.0
Date: 4/8/2014 2:22:04 AM
Event ID: 1309
Task Category: Web Event
Level: Warning
Keywords: Classic
User: N/A
Computer: Accu17.denver.wehostwebsites.com
Description:
Event code: 3005
Event message: An unhandled exception has occurred.
Event time: 4/8/2014 2:22:04 AM
Event time (UTC): 4/8/2014 8:22:04 AM
Event ID: a1d9a08b129642d8afd284051089ca09
Event sequence: 1394
Event occurrence: 4
Event detail code: 0
Application information:
Application domain: /LM/W3SVC/280/ROOT-1-130414157749022422
Trust level: Full
Application Virtual Path: /
Application Path: C:\HostingSpaces\sceryeme\sceryemen.com\wwwroot\
Machine name: ACCU17
Process information:
Process ID: 23016
Process name: w3wp.exe
Account name: ACCU17\sceryemencom_web
Exception information:
Exception type: HttpException
Exception message: A potentially dangerous Request.Path value was detected from the client (&).
at System.Web.HttpRequest.ValidateInputIfRequiredByConfig()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
Request information:
Request URL: http://sceryemen.com/assets/js/flexdropdown.jsbin/getcdndnsAAT2g62JNXAW3zxZ&video_id=LDrkWJpO2XA
Request path: /assets/js/flexdropdown.jsbin/getcdndnsAAT2g62JNXAW3zxZ&video_id=LDrkWJpO2XA
User host address: 50.57.104.33
User:
Is authenticated: False
Authentication Type:
Thread account name: ACCU17\sceryemencom_web
Thread information:
Thread ID: 27
Thread account name: ACCU17\sceryemencom_web
Is impersonating: False
Stack trace: at System.Web.HttpRequest.ValidateInputIfRequiredByConfig()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
Custom event details: Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="ASP.NET 4.0.30319.0" />
<EventID Qualifiers="32768">1309</EventID>
<Level>3</Level>
<Task>3</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2014-04-08T08:22:04.000000000Z" />
<EventRecordID>1448969</EventRecordID>
<Channel>Application</Channel>
<Computer>Accu17.denver.wehostwebsites.com</Computer>
<Security />
</System>
<EventData>
<Data>3005</Data>
<Data>An unhandled exception has occurred.</Data>
<Data>4/8/2014 2:22:04 AM</Data>
<Data>4/8/2014 8:22:04 AM</Data>
<Data>a1d9a08b129642d8afd284051089ca09</Data>
<Data>1394</Data>
<Data>4</Data>
<Data>0</Data>
<Data>/LM/W3SVC/280/ROOT-1-130414157749022422</Data>
<Data>Full</Data>
<Data>/</Data>
<Data>C:\HostingSpaces\sceryeme\sceryemen.com\wwwroot\</Data>
<Data>ACCU17</Data>
<Data>
</Data>
<Data>23016</Data>
<Data>w3wp.exe</Data>
<Data>ACCU17\sceryemencom_web</Data>
<Data>HttpException</Data>
<Data>A potentially dangerous Request.Path value was detected from the client (&).
at System.Web.HttpRequest.ValidateInputIfRequiredByConfig()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
</Data>
<Data>http://sceryemen.com/assets/js/flexdropdown.jsbin/getcdndnsAAT2g62JNXAW3zxZ&video_id=LDrkWJpO2XA</Data>
<Data>/assets/js/flexdropdown.jsbin/getcdndnsAAT2g62JNXAW3zxZ&video_id=LDrkWJpO2XA</Data>
<Data>50.57.104.33</Data>
<Data>
</Data>
<Data>False</Data>
<Data>
</Data>
<Data>ACCU17\sceryemencom_web</Data>
<Data>27</Data>
<Data>ACCU17\sceryemencom_web</Data>
<Data>False</Data>
<Data> at System.Web.HttpRequest.ValidateInputIfRequiredByConfig()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
</Data>
</EventData>
</Event>
A simple method that doesn't involve code changes would be to turn Rapid Fail Protection off on the application pool that is hosting this application. IIS defaults the maximum failure rate for 30 minutes to 30. After that, your application pool gets shut down and you get the 503. Turning off Rapid Fail Protection will at least get you beyond your application from killing the process.

ASP.NET MVC 3 WCF not working on load balancing servers

I searched the internet but couldn't find any scenarios like the one I'm having. The scenario is I have an ASP.NET MVC 3 Reporting application and stand-alone WCF hosted services. I am doing a bin deploy for ASP.NET MVC 3. Everything works great on my local environment and dev server. I am using a service reference in the ASP.NET MVC project to call into the client side proxy.
However, when I deploy to the clients test environment which is load balancing (ASP.NET and WCF layer both live on same load balancing servers), it is failing. If I run my local build and point my endpoints to their dev wcf services it works fine. It only fails when trying to launch the application from the test URL itself. I am getting the following error (edited the endpoint and service call information:
"System.ServiceModel.CommunicationException: An error occurred while
receiving the HTTP response to http:[testserver]. This could be due to
the service endpoint binding not using the HTTP protocol. This could
also be due to an HTTP request context being aborted by the server
(possibly due to the service shutting down). See server logs for more
details. ---> System.Net.WebException: The underlying connection was
closed: An unexpected error occurred on a receive. --->
System.IO.IOException: Unable to read data from the transport
connection: An existing connection was forcibly closed by the remote
host. ---> System.Net.Sockets.SocketException: An existing connection
was forcibly closed by the remote host at
System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset,
Int32 size) --- End of inner exception stack trace --- at
System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset,
Int32 size) at System.Net.PooledStream.Read(Byte[] buffer, Int32
offset, Int32 size) at System.Net.Connection.SyncRead(HttpWebRequest
request, Boolean userRetrievedStream, Boolean probeRead) --- End of
inner exception stack trace --- at
System.Net.HttpWebRequest.GetResponse() at
System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan
timeout) --- End of inner exception stack trace --- Server stack
trace: at
System.ServiceModel.Channels.HttpChannelUtilities.ProcessGetResponseWebException(WebException
webException, HttpWebRequest request, HttpAbortReason abortReason) at
System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan
timeout) at
System.ServiceModel.Channels.RequestChannel.Request(Message message,
TimeSpan timeout) at
System.ServiceModel.Channels.ServiceChannel.Call(String action,
Boolean oneway, ProxyOperationRuntime operation, Object[] ins,
Object[] outs, TimeSpan timeout) at
System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage
methodCall, ProxyOperationRuntime operation) at
System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage
message) Exception rethrown at [0]: at
System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage
reqMsg, IMessage retMsg) at
System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&
msgData, Int32 type) at
ReportingApp.UserClientProxy.IUser.GetUsersBetween(DateTime start,
DateTime end) at
ReportingApp.Controllers.HomeController.PopulateResultsTable(ReportingViewModel
vm) at ReportingApp.Controllers.HomeController.Index() at
lambda_method(Closure , ControllerBase , Object[] ) at
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext
controllerContext, IDictionary2 parameters) at
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext
controllerContext, ActionDescriptor actionDescriptor, IDictionary2
parameters) at
System.Web.Mvc.ControllerActionInvoker.<>c_DisplayClass15.b_12()
at
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter
filter, ActionExecutingContext preContext, Func1 continuation) at
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext
controllerContext, IList1 filters, ActionDescriptor actionDescriptor,
IDictionary`2 parameters) at
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext
controllerContext, String actionName)"
My ASP.NET wcf configuration is as follows:
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IUser" closeTimeout="00:10:00"
openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="5242880" maxBufferPoolSize="5242880" maxReceivedMessageSize="5242880"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="5242880" maxStringContentLength="5242880" maxArrayLength="5242880"
maxBytesPerRead="5242880" maxNameTableCharCount="5242880" />
<security mode="None" >
<transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
<message clientCredentialType="UserName"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="[testEndPoint]" binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IUser" contract="UserClientProxy.IUser"
name="BasicHttpBinding_IUser" />
My service web config looks like this:
<behaviors>
<serviceBehaviors>
<behavior>
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
<!--Doubled from value again to resolve issues with the reporting process.-->
<dataContractSerializer maxItemsInObjectGraph="524288" />
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<basicHttpBinding>
<binding maxBufferSize="5242880" maxBufferPoolSize="5242880" maxReceivedMessageSize="5242880">
<readerQuotas maxDepth="5242880" maxStringContentLength="5242880" maxArrayLength="5242880"
maxBytesPerRead="5242880" maxNameTableCharCount="5242880" />
</binding>
</basicHttpBinding>
</bindings>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
Any idea what might be causing this issue? Could it be a permission issue or a configuration issue? I am confused as it works from my local build pointing to the clients test environment endpoint.
Thank you in advance!
I know this answer is late, but we had a similar issue with my Rest services, they worked fine on our development servers, then they stopped working when we deployed them to a load balanced pool and they made a call to another service that was also on the Load Balancing Pool.
We were able to get the call to work once we turned on Source Address Translation. Our Web admin had to change the Translation setting setting in the F5 pool to SNAT Pool. This link has more information for your network person.
https://support.f5.com/kb/en-us/products/lc_9_x/manuals/product/lc_config_guide_10_1/lc_addrtrans.html
So this might help in the case of when a service that was working fine, is now failing when calling something that is load balanced.

CCNET Server Exception

CCNET is throwing this exeption on the web dashboard. What is causing this?
System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 127.0.0.1:21234 Server stack trace: at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) at System.Net.Sockets.Socket.Connect(EndPoint remoteEP) at System.Runtime.Remoting.Channels.RemoteConnection.CreateNewSocket(EndPoint ipEndPoint) at System.Runtime.Remoting.Channels.RemoteConnection.CreateNewSocket() at System.Runtime.Remoting.Channels.RemoteConnection.GetSocket() at System.Runtime.Remoting.Channels.SocketCache.GetSocket(String machinePortAndSid, Boolean openNew) at System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.SendRequestWithRetry(IMessage msg, ITransportHeaders requestHeaders, Stream requestStream) at System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.ProcessMessage(IMessage msg, ITransportHeaders requestHeaders, Stream requestStream, ITransportHeaders& responseHeaders, Stream& responseStream) at System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage(IMessage msg) Exception rethrown at [0]: at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) at ThoughtWorks.CruiseControl.Remote.ICruiseManager.GetServerLog() at ThoughtWorks.CruiseControl.WebDashboard.ServerConnection.ServerAggregatingCruiseManagerWrapper.GetServerLog(IServerSpecifier serverSpecifier) at ThoughtWorks.CruiseControl.WebDashboard.Plugins.ServerReport.ServerLogServerPlugin.Execute(ICruiseRequest request) at ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise.ServerCheckingProxyAction.Execute(ICruiseRequest cruiseRequest) at ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise.CruiseActionProxyAction.Execute(IRequest request) at ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise.ExceptionCatchingActionProxy.Execute(IRequest request)
have you checked the ccservice is started? you can use telnet to check this, and, for testing, we can use ccnet.exe which is an console app for simplified
This issue looks like another process locks the same port that CCNet is using. You can use PortMon to track which process is locking that specific port. You can also configure CCNet in the config file to use a different port to avoid collision. The configuration should look as follow
<system.runtime.remoting>
<application>
<channels>
<!-- change port here -->
<channel ref="tcp" port="21234">
<serverProviders>
<formatter ref="binary" typeFilterLevel="Full"/>
</serverProviders>
</channel>
</channels>
</application>
</system.runtime.remoting>

Resources