Saturday, August 8, 2009

WCF load balance error: HTTP 405 Method Not Allowed

---------------------------------------------------------
Server configuration:
---------------------------------------------------------
  1. Two windows 2003 SP2 servers
  2. WCF service is hosted on each service by Windows Service
---------------------------------------------------------
Bindings Info for WCF service:
---------------------------------------------------------<bindings><basicHttpBinding><binding hostNameComparisonMode="Exact" name="basicHttpBindingSettings" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="true" bypassProxyOnLocal="false" maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true"><readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /><security mode="None"><transport clientCredentialType="None" proxyCredentialType="None" realm="" /><message clientCredentialType="UserName" algorithmSuite="Default" /></security></binding></basicHttpBinding><netTcpBinding><binding hostNameComparisonMode="Exact" name="netTcpBindingSettings" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" transferMode="Buffered" maxBufferPoolSize="52428800" maxBufferSize="6553600" maxConnections="10000" maxReceivedMessageSize="6553600"><readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /><security mode="None"><transport clientCredentialType="None" protectionLevel="EncryptAndSign" /><message clientCredentialType="UserName" algorithmSuite="Default" /></security></binding></netTcpBinding><mexTcpBinding><binding name="mexTcpBindingSettings" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" /></mexTcpBinding></bindings>

---------------------------------------------------------
Service configuration on server 1:
---------------------------------------------------------
<service name="ArielBPM.Services.ServiceBroker.RegisterEventManagement"behaviorConfiguration="ArielBPM.Services.ServiceBrokerBehavior"><host><baseAddresses><add baseAddress="http://192.168.6.84:8001/ArielBPM/Services/ServiceBroker/RegisterEventManagement/" /><add baseAddress="net.tcp://192.168.6.84:9001/ArielBPM/Services/ServiceBroker/RegisterEventManagement/" /></baseAddresses></host><endpoint address="" binding="basicHttpBinding"bindingNamespace="http://ArielBPM.Services.ServiceBroker.RegisterEventManagement/binding"contract="ArielBPM.Services.ServiceBroker.RegisterEventManagement.IRegisterEventManagement"bindingConfiguration="basicHttpBindingSettings"><identity><dns value="192.168.6.84" /></identity></endpoint><endpoint address="" binding="netTcpBinding" bindingConfiguration="netTcpBindingSettings"contract="ArielBPM.Services.ServiceBroker.RegisterEventManagement.IRegisterEventManagement" /></service>

---------------------------------------------------------
Here is the service configuration on server 2:
---------------------------------------------------------
<service name="ArielBPM.Services.ServiceBroker.RegisterEventManagement"behaviorConfiguration="ArielBPM.Services.ServiceBrokerBehavior"><host><baseAddresses><add baseAddress="http://192.168.6.154:8001/ArielBPM/Services/ServiceBroker/RegisterEventManagement/" /><add baseAddress="net.tcp://192.168.6.154:9001/ArielBPM/Services/ServiceBroker/RegisterEventManagement/" /></baseAddresses></host><endpoint address="" binding="basicHttpBinding"bindingNamespace="http://ArielBPM.Services.ServiceBroker.RegisterEventManagement/binding"contract="ArielBPM.Services.ServiceBroker.RegisterEventManagement.IRegisterEventManagement"bindingConfiguration="basicHttpBindingSettings"><identity><dns value="192.168.6.154" /></identity></endpoint><endpoint address="" binding="netTcpBinding"
bindingConfiguration="netTcpBindingSettings"contract="ArielBPM.Services.ServiceBroker.RegisterEventManagement.IRegisterEventManagement" /></service>

---------------------------------------------------------
WCF service behavior configuration:
---------------------------------------------------------
<serviceBehaviors><behavior name="ArielBPM.Services.ServiceBrokerBehavior"><serviceMetadata httpGetEnabled="True" /><serviceDebug includeExceptionDetailInFaults="True" /><serviceThrottling maxConcurrentCalls="10000" maxConcurrentInstances="10000" maxConcurrentSessions="10000" /></behavior></serviceBehaviors>

---------------------------------------------------------
Load balancer information:
---------------------------------------------------------
DNS name: arielbpm.load.services.msoclient.com

---------------------------------------------------------
Error information:
---------------------------------------------------------
Got "HTTP 405 Method Not Allowed" error when trying to open the following URL in the browser: http://arielbpm.load.services.msoclient.com:8001/ArielBPM/Services/ServiceBroker/RegisterEventManagement/

---------------------------------------------------------
Solution: Update bindings Info for WCF service:
---------------------------------------------------------
<bindings><basicHttpBinding><binding hostNameComparisonMode="WeakWildcard" name="basicHttpBindingSettings" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="true" bypassProxyOnLocal="false" maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true"><readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /><security mode="None"> <transport clientCredentialType="None" proxyCredentialType="None" realm="" /> <message clientCredentialType="UserName" algorithmSuite="Default" /></security></binding></basicHttpBinding><netTcpBinding><binding hostNameComparisonMode="WeakWildcard" name="netTcpBindingSettings" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" transferMode="Buffered" maxBufferPoolSize="52428800" maxBufferSize="6553600" maxConnections="10000" maxReceivedMessageSize="6553600"><readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /><security mode="None"> <transport clientCredentialType="None" protectionLevel="EncryptAndSign" /> <message clientCredentialType="UserName" algorithmSuite="Default" /></security></binding></netTcpBinding><mexTcpBinding><binding name="mexTcpBindingSettings" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" /></mexTcpBinding></bindings>


No comments:

Post a Comment