views:

86

answers:

2

Hi,

i am working on an intranet application which should able to control sub-applications. As part of the application i want to read the logs of the sub-applications. the sub applications are keeping the connection alive by sending an alive signal every 15 minutes. so the channel is not closed - this works fine, for many days.

but when i want to get some logs of a sub-applikation, the channel faults. i do not know why the channel faults. i am using a nettcpbinding to connect the applications. the logs are transfered within a serializeable dataset.

can somebody give me a hint why the channel faults? i have no idea anymore. i tried to reconfigure the whole stuff more than once now without getting a solution.

Thanks

+2  A: 

Perhaps your dataset size is bigger than allowed? Btw you may use global error handler which is described in http://www.steverb.com/post/2008/11/24/Useful-WCF-Behaviors-IErrorHandler.aspx

Anton Setiawan
That's a pretty cool article! Thanks for the link.
Terry Donaghe
well .. i was not able to find such an information. i started a test program which starts pushing data to a simple wcf server. I start pushing at 1 row and count up. each row as a single column with data of a string length of 1000. It hangs up at a dataset size of 49507 bytes - these are 206 rows.I gonna add the error handler to catch the error ...
mabu
hm well .. at another test run i got 56kb till the server stopped responding. When i restarted the client the server responds - without a restart..and i send the client after sending a dataset to sleep for about 250ms
mabu
you got me on the right track .. i changed the callback interface to use a stream insted of a dataset. afterwards i had to modify Binding.ReaderQuotas.MaxArrayLength and Binding.MaxReceivedMessageSize to get the amount of data from client to server. Another workaround would have been to add paging on server to fetch only few number of rows.Thanks!
mabu
Glad you got it working Mabu!
Terry Donaghe
A: 

Does your service have includeExceptionDetailInFaults set to true? This will give you more detail about the faults in the service.

On the server side, find your service behavior and make sure includeExceptionDetailsInFaults is set to true:

<serviceDebug includeExceptionDetailInFaults="True" />

This should at least let you see more information about the exception.

If you've already done this, then what are you getting in the InnerException coming back from the service?

Terry Donaghe
Thanks, i already added the argument to the definitionThe main exception tells me "This request operation sent to net.tcp://localhost:8888/IServer did not receive a reply within the configured timeout (00:01:00)."And there is no inner exception. I already modified the operationtimeout. but it seems a little bit confusing that it takes more than 1 minute to transfer 50kb ?
mabu
oh i forgot to mention: i set the operationtimeout to 1 hour - but it hangs up at 50kb ... i gonna implement the upper errorhandler now .. let's see what i tells me
mabu