UriTemplate defines a template by which it is determined whether an incoming request should be sent to the given Uri to be serviced by the GetResultHttpGet method, and also matches parts of the Uri to the method parameters.
Suppose for this contract the base address
http://hostname/SomeWcf/
If an application (or directly by the browser) makes a GET request
http://hostname/SomeWcf/GetResult?client=CLI&password=PWD&messageId=MSG
This will GetResultHttpGet service method. In this case, the parts of Uri will become the values of the corresponding parameters:
string GetResultHttpGet(string client, string password, string messageId) { //здесь части Uri станут значениями параметров: //client = "CLI"; //password = "PWD"; //messageId = "MSG"; ... }
If you deviate from the template, setting something else, for example
http://hostname/SomeWcf/GetResult2?name=NAME или http://hostname/SomeWcf/GetResult3/Name/Foo
then the GetResultHttpGet method will not be called.
As for the Namespace property of the ServiceContract attribute
[ServiceContract(Namespace = "my.company.com")]
then it appears in the header soap-envelope
<s:Envelope ...> <s:Header> ... <a:Action s:mustUnderstand="1" ...>my.company.com/ISomeWcf/GetResultHttpGet</a:Action> ... </s:Header> <s:Body ...> ... </s:Body> </s:Envelope>
If you do not specify it
[ServiceContract]
then instead of my.company.com there will be a default value ( http://tempuri.org ).
If the interface describing the contract is in the assembly referenced by both the client and the server, then in principle the Namespace can be anything. If the interface is described twice - in the client part and in the server part, or if you create a client for an existing service with a specific Namespace , then Namespace must match so that the client and server understand each other, otherwise the answer will be
<s:Envelope ...> ... <s:Body> <s:Fault> ... <s:Reason> <s:Text xml:lang="en-US"> The message could not be processed because the action 'http://tempuri.org/ISomeWcf/GetResultHttpGet' is invalid or unrecognized. </s:Text> </s:Reason> </s:Fault> </s:Body> </s:Envelope>