IMetadataExchange contract and ServiceHost

8 views
Skip to first unread message

Matt Dargavel

unread,
Aug 12, 2009, 4:57:44 PM8/12/09
to Mono Olive - developing.NET 3.0, 3.5 and later versions

Hi there,

I've only just started looking in to WCF because we'd like to embed a
Web Service in to one of our Console Mono apps and self hosting of
WCF seems a good way to go.

I've started by creating a quick WCF Service dll using the Visual
Studio wizard and then created a simple console app to self-host the
service.

I tried running this under the tip version of Mono but hit a problem
in ServiceHostBase (Add ServiceMetadataBehavior to the ServiceHost to
add a endpoint for IMetadataExchange contract.). I got past this by
moving the behaviours section of ServiceHostBase.ApplyConfiguration()
above the services part, and the application ran further but failed
with:

Exception during finishing channel acceptance.
System.NotImplementedException: The requested feature is not
implemented.
at
System.ServiceModel.Channels.SecurityReplyChannel.BeginTryReceiveRequest

(As an aside does SecurityReplyChannel imply a secure comms channel?
I've not specified any secure endpoints.)

If I remove the IMetadataExchange endpoint the app runs fine. I was
wondering what the status of the mex contract stuff is? The reason
I've got this enabled is so the service will automatically serve up
its wsdl. I noticed in the status post you recently made are some
notes about WSDL being incomplete. I hesitate to ask this(!) but
would this be something someone else could help out with? Would it be
a lot of work? ;-)

If you want me to provide any more details such as the app config file
etc, I'd be happy to help.

Best Regards,

Matt.

Atsushi Eno

unread,
Aug 13, 2009, 9:28:29 PM8/13/09
to mono-...@googlegroups.com
Hello Matt,

Matt Dargavel wrote:
> I've only just started looking in to WCF because we'd like to embed a
> Web Service in to one of our Console Mono apps and self hosting of
> WCF seems a good way to go.

Note that WCF stack has been significantly rewritten and unstable.

> I tried running this under the tip version of Mono but hit a problem
> in ServiceHostBase (Add ServiceMetadataBehavior to the ServiceHost to
> add a endpoint for IMetadataExchange contract.). I got past this by
> moving the behaviours section of ServiceHostBase.ApplyConfiguration()
> above the services part, and the application ran further but failed
> with:
>
> Exception during finishing channel acceptance.
> System.NotImplementedException: The requested feature is not
> implemented.
> at
> System.ServiceModel.Channels.SecurityReplyChannel.BeginTryReceiveRequest
>
> (As an aside does SecurityReplyChannel imply a secure comms channel?
> I've not specified any secure endpoints.)

Like this exception message explains, any security feature is either
just not implemented or incomplete.

> If I remove the IMetadataExchange endpoint the app runs fine. I was
> wondering what the status of the mex contract stuff is? The reason
> I've got this enabled is so the service will automatically serve up
> its wsdl. I noticed in the status post you recently made are some
> notes about WSDL being incomplete. I hesitate to ask this(!) but
> would this be something someone else could help out with? Would it be
> a lot of work? ;-)

Metadata exchange feature is incomplete too, but much better than
security stack, as it used to be implemented. It may be or may not
be a lot of work, but since I won't work on it now (I'm working on
other stuff) so it depends on whether *others* hack it or not.

Atsushi Eno

Reply all
Reply to author
Forward
0 new messages