Below Code I was using to Self Host my WCF Service.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using System.ServiceModel.Description;
namespace ConsoleApplication1
{
[ServiceContract]
public interface IService
{
[OperationContract]
string GetData(int value);
//written by Tanvi
[OperationContract]
string GetString(String theString);
}
public class Service : IService
{
public string GetData(int value)
{
return string.Format("You entered: {0}", value);
}
public string GetString(String theString)
{
return "Hello First WCF Service" + theString;
}
}
class Program
{
static void Main(string[] args)
{
Uri baseAddress = new Uri("http://localhost:81/TestService");
// Create the ServiceHost.
using (ServiceHost host = new ServiceHost(typeof(Service), baseAddress))
{
// Enable metadata publishing.
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15;
host.Description.Behaviors.Add(smb);
host.AddServiceEndpoint(typeof(IService), new BasicHttpBinding(), "TestService");
// Open the ServiceHost to start listening for messages. Since
host.Open();
Console.WriteLine("The service is ready at {0}", baseAddress);
Console.WriteLine("Press <Enter> to stop the service.");
Console.ReadLine();
// Close the ServiceHost.
host.Close();
}
}
}
}
And Got an Error "AddressAccessDeniedException: HTTP could not register URL http:// ......."
The problem was Operating System User A/c did not have enough privileges to access this address.
So When I open my Visual Studio in "Run As Administrator" Mode , Right click on visual Studio and Click on Run as Administrator, the problem was solved.