I have two services and am sending pretty chunky messages between them (~100kb). Though the previously mentioned value is typical of the size of the message, it is possible for
There are ocassional problems with WCF that will cause it to fail "silently" (i.e. no exception) which can be hard to debug. Sounds like this might be the case you're seeing.
In this case, enabling the tracing options in WCF can be extremely helpful, as it should allow you to see if the message is indeed reaching the service and how the dispatcher is dealing with it.
well this problem seems to have resolved itself (suddenly after never complaining before, WCF started getting upset about a certain value in the app.config, changed that and it seemed to work then!)
however now i have an equally strange problem! for somre reason it refuses to accept that i have configured metadata to be published. my app.config (host side) set up is as follows:
<services>
<service name="DataFeederService.FeederService" behaviorConfiguration="DataFeederService.FeederServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8010/Feeder"/>
<add baseAddress="net.pipe://localhost/FeederPipe"/>
</baseAddresses>
</host>
<!-- Service Endpoints -->
<!-- Unless fully qualified, address is relative to base address supplied above -->
<endpoint name="namedPipeEndpoint"
address=""
bindingConfiguration="IPCWindowsSecurity"
binding="netNamedPipeBinding"
contract="DataFeederService.IFeederService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint name="httpEndpoint"
address="FeederService"
binding="wsHttpBinding"
bindingConfiguration="httpBinding"
contract="DataFeederService.IWebFeederService"/>
<!-- Metadata Endpoints -->
<!-- The Metadata Exchange endpoint is used by the service to describe itself to clients. -->
<!-- This endpoint does not use a secure binding and should be secured or removed before deployment -->
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<bindings>
<netNamedPipeBinding>
<binding name="IPCWindowsSecurity"
maxBufferPoolSize="965536"
maxBufferSize="965536"
maxReceivedMessageSize="965536">
<readerQuotas maxStringContentLength="965536" />
<security mode="Transport">
<transport protectionLevel="EncryptAndSign" />
</security>
</binding>
</netNamedPipeBinding>
<wsHttpBinding>
<binding name="httpBinding"
maxBufferPoolSize="965536"
maxReceivedMessageSize="965536">
<readerQuotas maxStringContentLength="965536" />
</binding>
</wsHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="DataFeederService.FeederServiceBehavior">
<!-- To avoid disclosing metadata information,
set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="True" policyVersion="Policy15"/>
<!-- 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 -->
<serviceDebug includeExceptionDetailInFaults="True" httpHelpPageEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
I have tried my best to work out why it would be claiming the metadata isn't being published at the specified address "http://localhost:8010/Feeder/mex". any help would be greatly appreciated.
Cheers!
sorry guys, after further trawling i discovered the source of the error! one of the classes in the datacontract had been changed (the [DataContract] attribute had been removed, but strangely [DataMemeber] had been left on the relevant properties! very odd!)
thanks for all your help anyways, especially rfor getting me to this point, where i can finally wash my hands of this damn project :-)