问题
Please help getting exception at using (ServiceHost host = new ServiceHost(typeof(HelloService.HelloService)))
in the below code
Exception : Only an absolute URI can be used as a base address
WCF Host Application
class Program
{
static void Main()
{
using (ServiceHost host = new ServiceHost(typeof(HelloService.HelloService)))
{
host.Open();
Console.WriteLine("Service Started");
Console.ReadLine();
}
}
}
Contract Implementation
public class HelloService : IHelloService
{
public string GetMessage(string Name)
{
return "Hello" + Name;
}
}
Contract
[ServiceContract]
public interface IHelloService
{
[OperationContract]
string GetMessage(string Name);
}
App.Config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<services>
<service name="HelloService.HelloService" behaviorConfiguration="mexBehaviour">
<endpoint address="HelloService" binding="basicHttpBinding" contract="HelloService.IHelloService">
</endpoint>
<endpoint address="HelloService" binding="netTcpBinding" contract="HelloService.IHelloService">
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange">
</endpoint>
<host>
<baseAddresses>
<add baseAddress="http://localhost:8080/HelloService"/>
<add baseAddress="net.tcp//localhost:8090/HelloService"/>
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="mexBehaviour">
<serviceMetadata httpGetEnabled="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
回答1:
I believe you are missing a colon (:
):
<add baseAddress="net.tcp//localhost:8090/HelloService"/>
should be
<add baseAddress="net.tcp://localhost:8090/HelloService"/>
回答2:
<endpoint address="HelloService"...
Should be
<endpoint address="/HelloService"...
See https://msdn.microsoft.com/en-us/library/ms733749(v=vs.110).aspx
回答3:
In short this is Error related to base address.so, please check whether you have entered base address properly or not.
Error:
<add baseAddress=" "http://localhost:8732/Design_Time_Addresses/WcfServiceLibraryShop/IStudent/">" />
Solved:
<add baseAddress=" http://localhost:8732/Design_Time_Addresses/WcfServiceLibraryShop/IStudent/" />
来源:https://stackoverflow.com/questions/30809971/only-an-absolute-uri-can-be-used-as-a-base-address