[Mono-dev] WCF: BasicHttpBinding

David Schmitt david at dasz.at
Wed Nov 30 11:57:01 EST 2011


Hi,

when configuring a WCF service with BasicHttpBinding (works on .net) 
Mono 2.10 throws the following exception:

> System.InvalidOperationException: Only MessageVersion.None is allowed for WebHttpBehavior
>   at System.ServiceModel.Description.WebHttpBehavior.ValidateBinding (System.ServiceModel.Description.ServiceEndpoint endpoint) [0x000b8] in [...]/mcs/class/System.ServiceModel.Web/System.ServiceModel.Description/WebHttpBehavior.cs:306
>   at System.ServiceModel.Description.WebHttpBehavior.Validate (System.ServiceModel.Description.ServiceEndpoint endpoint) [0x00052] in [...]/mcs/class/System.ServiceModel.Web/System.ServiceModel.Description/WebHttpBehavior.cs:290
>   at System.ServiceModel.Description.ServiceEndpoint.Validate () [0x0005f] in [...]/mcs/class/System.ServiceModel/System.ServiceModel.Description/ServiceEndpoint.cs:124
>   at System.ServiceModel.ServiceHostBase.ValidateDescription () [0x00064] in [...]/mcs/class/System.ServiceModel/System.ServiceModel/ServiceHostBase.cs:489
>   at System.ServiceModel.ServiceHostBase.InitializeRuntime () [0x00000] in [...]/mcs/class/System.ServiceModel/System.ServiceModel/ServiceHostBase.cs:447
>   at System.ServiceModel.ServiceHostBase.OnOpen (TimeSpan timeout) [0x00006] in [...]/mcs/class/System.ServiceModel/System.ServiceModel/ServiceHostBase.cs:567
>   at System.ServiceModel.Channels.CommunicationObject.Open (TimeSpan timeout) [0x00006] in [...]/mcs/class/System.ServiceModel/System.ServiceModel.Channels/CommunicationObject.cs:170
>   at System.ServiceModel.Channels.CommunicationObject.Open () [0x00000] in [...]/mcs/class/System.ServiceModel/System.ServiceModel.Channels/CommunicationObject.cs:164


This is the app.config fragment I'm using:
>   <behaviors>
>       <serviceBehaviors>
>         <behavior name="TestService_Behaviour">
>           <serviceMetadata httpGetEnabled="true" httpGetUrl="[someUrl]" />
>           <!--
>             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.
>             Hint from http://geekswithblogs.net/frankw/archive/2008/03/12/includeexceptiondetailinfaults-in-wcf-service-configuration.aspx
>           -->
>           <serviceDebug includeExceptionDetailInFaults="true" httpHelpPageEnabled="true" httpHelpPageUrl="[someUrl]/Help"/>
>           <!--
>             We are using sessions! Not realy sessions like ASP.NET sessions, we do not have state at the server.
>             But the configurated security mode establishes a session. Thus we have to increse the maxConcurrentSessions throttle.
>             200 because WCF 4.0 uses 100 * processor count for session and 16 * processor count for calls
>           -->
>           <serviceThrottling maxConcurrentSessions="200" />
>         </behavior>
>         <behavior name="Test.Server.BootstrapperServiceBehavior">
>           <serviceMetadata httpGetEnabled="true" />
>           <serviceDebug includeExceptionDetailInFaults="true" />
>         </behavior>
>       </serviceBehaviors>
>     </behaviors>
>     <services>
>       <service name="Test.Server.TestService" behaviorConfiguration="TestService_Behaviour">
>         <endpoint address="[someUrl]" binding="basicHttpBinding"
> 						  bindingConfiguration="TestService_Binding" contract="Test.API.ITestService"
> 							name="TestService_Endpoint" />
>         <host>
>           <baseAddresses>
>             <add baseAddress="[someUrl]"/>
>           </baseAddresses>
>         </host>
>       </service>
>       <service name="Test.Server.BootstrapperService" behaviorConfiguration="Test.Server.BootstrapperServiceBehavior">
>         <endpoint address="Bootstrapper.svc" binding="webHttpBinding" contract="Test.Server.IBootstrapperService" />
>         <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
>         <host>
>           <baseAddresses>
>             <add baseAddress="[someBaseAddress]"/>
>           </baseAddresses>
>         </host>
>       </service>
>     </services>


I'm running a locally compiled version from the 2.10 branch.

Is this "intentionally" not implemented or should I file a bug? Also, 
where can I start looking to implement this?


Best Regards, David



More information about the Mono-devel-list mailing list