Ik heb een WCF console applicatie gebouwd in C# en gecompiled met de Mono 2.10 compiler. De service werkt goed en benader ik vanuit een web applicatie die in PHP is gebouwd.
Op het moment dat de web applicatie de verbinding verbreekt of als er teveel requests binnenkomen bij de service dan klapt deze eruit. Ik krijg dan de volgende exceptions terug:
of:
In de gehele applicatie worden alle mogelijke fouten opgevangen en netjes afgehandeld. Het rare is dat ik bovenstaande exceptions niet kan afvangen.
Ik heb aan het Faulted event van de ServiceHost een handler gehangen die die fouten kan opvangen. Daarnaast heb ik een ErrorHandler geimplementeerd die de IErrorHandler interface implementeerd die alle errors van de gehele applicatie moet opvangen. Het rare is dat die niet getriggerd worden in de debugger op het moment dat één van de bovenstaande fouten optreed.
Ik heb al uren gespendeerd aan het zoeken naar een antwoord op mijn vraag, maar nog geen antwoorden gevonden. Zie bijvoorbeeld deze pagina, waar twee gebruikers hetzelfde probleem hebben als ik, maar helaas geen reacties op zijn.
Ik gebruik de laatste versie van Mono en de applicatie draait op Ubuntu 11.10.
Op het moment dat de web applicatie de verbinding verbreekt of als er teveel requests binnenkomen bij de service dan klapt deze eruit. Ik krijg dan de volgende exceptions terug:
code:
1
2
3
4
5
6
7
8
9
10
11
12
| Exception Write failure at System.Net.Sockets.NetworkStream.Write (System.Byte[] buffer, Int32 offset, Int32 size) [0x00000] in <filename unknown>:0 at System.Net.ResponseStream.InternalWrite (System.Byte[] buffer, Int32 offset, Int32 count) [0x00000] in <filename unknown>:0 at System.Net.ResponseStream.Write (System.Byte[] buffer, Int32 offset, Int32 count) [0x00000] in <filename unknown>:0 at System.ServiceModel.Channels.Http.HttpRequestContext.InternalReply (System.ServiceModel.Channels.Message msg, TimeSpan timeout) [0x00000] in <filename unknown>:0 at System.ServiceModel.Channels.Http.HttpRequestContext.Reply (System.ServiceModel.Channels.Message msg, TimeSpan timeout) [0x00000] in <filename unknown>:0 at System.ServiceModel.Dispatcher.MessageProcessingContext.Reply (Boolean useTimeout) [0x00000] in <filename unknown>:0 at System.ServiceModel.Dispatcher.OperationInvokerHandler.Reply (System.ServiceModel.Dispatcher.MessageProcessingContext mrc, Boolean useTimeout) [0x00000] in <filename unknown>:0 at System.ServiceModel.Dispatcher.OperationInvokerHandler.ProcessRequest (System.ServiceModel.Dispatcher.MessageProcessingContext mrc) [0x00000] in <filename unknown>:0 at System.ServiceModel.Dispatcher.BaseRequestProcessorHandler.ProcessRequestChain (System.ServiceModel.Dispatcher.MessageProcessingContext mrc) [0x00000] in <filename unknown>:0 at System.ServiceModel.Dispatcher.BaseRequestProcessorHandler.ProcessRequestChain (System.ServiceModel.Dispatcher.MessageProcessingContext mrc) [0x00000] in <filename unknown>:0 at System.ServiceModel.Dispatcher.HandlersChain.ProcessRequestChain (System.ServiceModel.Dispatcher.MessageProcessingContext mrc) [0x00000] in <filename unknown>:0 at System.ServiceModel.Dispatcher.BaseRequestProcessor.ProcessRequest (System.ServiceModel.Dispatcher.MessageProcessingContext mrc) [0x00000] in <filename unknown>:0 |
of:
code:
1
2
3
4
5
6
7
8
9
10
| Unhandled Exception: System.InvalidOperationException: This XmlWriter does not accept StartTag at this state Error. at System.Xml.XmlTextWriter.WriteStartElement (System.String prefix, System.String localName, System.String namespaceUri) [0x00000] in <filename unknown>:0 at System.Xml.DefaultXmlWriter.WriteStartElement (System.String prefix, System.String localName, System.String ns) [0x00000] in <filename unknown>:0 at System.Xml.XmlWriter.WriteStartElement (System.String localName, System.String ns) [0x00000] in <filename unknown>:0 at System.ServiceModel.Logger.TraceCore (TraceEventType eventType, Int32 id, Boolean hasRelatedActivity, Guid relatedActivity, System.Object[] data) [0x00000] in <filename unknown>:0 at System.ServiceModel.Logger.Log (TraceEventType eventType, System.String message, System.Object[] args) [0x00000] in <filename unknown>:0 at System.ServiceModel.Logger.Error (System.String message, System.Object[] args) [0x00000] in <filename unknown>:0 at System.ServiceModel.Dispatcher.ListenerLoopManager.ProcessErrorWithHandlers (IChannel ch, System.Exception ex, System.ServiceModel.Channels.Message& res) [0x00000] in <filename unknown>:0 at System.ServiceModel.Dispatcher.ListenerLoopManager.ProcessRequest (IReplyChannel reply, System.ServiceModel.Channels.RequestContext rc) [0x00000] in <filename unknown>:0 at System.ServiceModel.Dispatcher.ListenerLoopManager.TryReceiveRequestDone (IAsyncResult result) [0x00000] in <filename unknown>:0 |
In de gehele applicatie worden alle mogelijke fouten opgevangen en netjes afgehandeld. Het rare is dat ik bovenstaande exceptions niet kan afvangen.
Ik heb aan het Faulted event van de ServiceHost een handler gehangen die die fouten kan opvangen. Daarnaast heb ik een ErrorHandler geimplementeerd die de IErrorHandler interface implementeerd die alle errors van de gehele applicatie moet opvangen. Het rare is dat die niet getriggerd worden in de debugger op het moment dat één van de bovenstaande fouten optreed.
Ik heb al uren gespendeerd aan het zoeken naar een antwoord op mijn vraag, maar nog geen antwoorden gevonden. Zie bijvoorbeeld deze pagina, waar twee gebruikers hetzelfde probleem hebben als ik, maar helaas geen reacties op zijn.
Ik gebruik de laatste versie van Mono en de applicatie draait op Ubuntu 11.10.
[ Voor 10% gewijzigd door T i M op 24-09-2011 16:16 ]