[Mono-dev] [PATCH] WCF more detail on Destination Unreachable

Atsushi Eno atsushieno at veritas-vos-liberabit.com
Thu Mar 25 00:12:13 EDT 2010


Thanks for the test, it cleared some things up :)

So - first, I cannot apply your HttpRequestChannel change. The code you
removed was introduced to fix real problem regarding HTTP 4xx; when
HTTP 4xx is returned, the response stream is inaccessible and the channel
should not try to read it.

Instead, the server code seems to have an issue that it should just
return 500. While it is set to 400 at HttpRequestContext with explicit
comment that "it is what .NET does", I was likely wrong by seeing
response from WebHttpBinding, which likely has special error handling.

In general our fault handling is not well done yet and I'm seeing a
couple of issues to get correct fix there. Better fault handling is one
of the tasks on my stack, but it may be time to give priority than 
ongoing bugfix as it's blocking your patch that will help my ongoing work...

Atsushi Eno


On 2010/03/24 19:41, Matt Dargavel wrote:
> Apologies for the wait- it's the time difference! :-)
>
> I've come up with a test for the DestinationUnreachable patch.  When I
> was doing my testing I was using a combination of a .NET client and
> manually firing in requests using PuTTY and examining the reply.  When I
> use a WCF Client in Mono the exception detail is currently lost in
> HttpRequestChannel, with a WebException being returned instead.
>
> The patch I've attached changes HttpRequestChannel so that 400+ errors
> are returned normally.  This results in a FaultException being returned
> instead.  The FaultException includes the extra details my previous
> patch added.
>
> Do you think this is acceptable and covers what you need?  Hopefully
> you'll be able to add it to the NUnit tests fairly easily.
>
> 	Thanks,
>
> 		Matt.
>
>
>> -----Original Message-----
>> From: Atsushi Eno [mailto:atsushieno at veritas-vos-liberabit.com]
>> Sent: 24 March 2010 6:18 AM
>> To: Matt Dargavel
>> Cc: mono-devel-list at lists.ximian.com
>> Subject: Re: [Mono-dev] [PATCH] WCF more detail on Destination
> Unreachable
>>
>> Instead of waiting for your reply, I've rather committed the patch
> (with
>> a few change) and verify it later with a runnable repro. ->
>> DestinationUnreachableInfo.patch is done
>>
>> Atsushi Eno
>>
>> On 2010/03/24 14:35, Atsushi Eno wrote:
>>> I still couldn't reproduce the detailed error message. Let's please
> post
>>> a runnable repro case instead of code-less explanation ;)
>>>
>>> Atsushi Eno
>>>
>>> On 2010/03/23 22:38, Matt Dargavel wrote:
>>>
>>>> You can reproduce it by requesting an operation that doesn't exist.
> (It
>>>> was happening before I implemented the two Service Contracts on one
> end
>>>> point change as the wrong channel dispatcher was getting the
> request.)
>>>> So I should be able to write a test case for that...
>>>>
>>>>
>>>>
>>>>
>>>>> -----Original Message-----
>>>>> From: Atsushi Eno [mailto:atsushieno at veritas-vos-liberabit.com]
>>>>> Sent: 23 March 2010 12:57 PM
>>>>> To: Matt Dargavel
>>>>> Cc: mono-devel-list at lists.ximian.com
>>>>> Subject: Re: [PATCH] WCF more detail on Destination Unreachable
>>>>>
>>>>> It's looking fine, but how did you check your change? (I know it
> could
>>>>> happen not always reproducible, so that's okay if it's not really
>>>>>
>>>>>
>>>> always
>>>>
>>>>
>>>>> reproducible.)
>>>>>
>>>>> BTW I thank a lot for your properties change, that fixed a bug
> that
>>>>> annoyed me today ;-)
>>>>>
>>>>> Atsushi Eno
>>>>>
>>>>> On 2010/03/23 20:28, Matt Dargavel wrote:
>>>>>
>>>>>
>>>>>> A patch to return more detail when an endpoint / operation isn't
>>>>>> found. Not sure if you'll want to apply this, but it helped in
> some
>>>>>> service debugging I was doing.
>>>>>>
>>>>>> Matt.
>>>>>>
>>>>>>
>>>>>>
>>>>
>>>>
>>>>
>>> _______________________________________________
>>> Mono-devel-list mailing list
>>> Mono-devel-list at lists.ximian.com
>>> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>>>
>>>
>>>
>>>
>



More information about the Mono-devel-list mailing list