The caller was not authenticated by the service
11,419
Instead of using binding="wsHttpBinding"
, try using just a basic, changing you client endopint to:
<endpoint address="http://pionbuggs-pc:4567/EMRProWCFService.svc"
binding="basicHttpBinding" bindingConfiguration="WSHttpBinding_IEMRProWCFService"
contract="EMRProWCFService.IEMRProWCFService" name="WSHttpBinding_IEMRProWCFService">
and on your service to:
<endpoint address="" binding="basicHttpBinding" contract="WCFService.IEMRProWCFService">
The error is that you use advanced security that requires you to use authentication, unless there are security constrains that require it.
Here's some info about it:
BasicHttpBinding vs WsHttpBinding vs WebHttpBinding
Author by
MindFresher
Updated on June 14, 2022Comments
-
MindFresher almost 2 years
I am using WCF and found this error:
" The caller was not authenticated by the service."
I have used this code in
client.config
file:<system.serviceModel> <bindings> <wsHttpBinding> <binding name="WSDualHttpBinding_IReceiverController" closeTimeout="00:00:05" openTimeout="00:00:05" receiveTimeout="00:10:00" sendTimeout="00:00:05" bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"> <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" /> <reliableSession ordered="true" inactivityTimeout="00:10:00" /> <security mode="None"> <message clientCredentialType="Windows" negotiateServiceCredential="false" /> </security> </binding> <binding name="WSHttpBinding_IEMRProWCFService" /> </wsHttpBinding> </bindings> <client> <endpoint address="http://pionbuggs-pc:4567/EMRProWCFService.svc" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IEMRProWCFService" contract="EMRProWCFService.IEMRProWCFService" name="WSHttpBinding_IEMRProWCFService"> <identity> <dns value="http://pionbuggs-pc:4567/EMRProWCFService.svc" /> </identity> </endpoint> </client> </system.serviceModel>
And below is the code in the
service.config
file:<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.web> <compilation /> <httpRuntime maxRequestLength="2147483647" /> </system.web> <system.serviceModel> <services> <service name="WCFService.EMRProWCFService"> <endpoint address="" binding="wsHttpBinding" contract="WCFService.IEMRProWCFService"> <identity> <dns value="http://pionbuggs-pc:4567/EMRProWCFService.svc" /> </identity> </endpoint> <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> </service> </services> <behaviors> <serviceBehaviors> <behavior> <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment --> <serviceMetadata httpGetEnabled="true" /> <!-- 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" /> </behavior> </serviceBehaviors> </behaviors> <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> <bindings> <webHttpBinding> <binding name="WebConfiguration" maxBufferSize="65536" maxReceivedMessageSize="2147483647" transferMode="Streamed"> </binding> </webHttpBinding> </bindings> </system.serviceModel> <system.webServer> <modules runAllManagedModulesForAllRequests="true" /> <directoryBrowse enabled="true" /> </system.webServer> </configuration>