I have a WCF service running in IIS, which functions in a class library where httpContext is available. How can I get a web site URL dynamically, it can also be a virtual directory?
You can create a ServiceHostFactory that launches your service host manually, then your application Here is a simple example:
(in your myService.svc):
& lt;% @, store the endpoint address in a static category used by Servicehost service = "MyNamespace.MyService" factory = "MyNamespace.MyServiceHostFactory" & gt%;
(in your MyServiceHostFactory.cs):
/// & lt; Summary & gt; Increases ServiceHostFactory to allow access to /// ServiceHostFactory. /// & lt; / Summary & gt; Public category MyServiceHostFactory: ServiceHostFactory {/// & lt; Summary & gt; /// Creates a new ServiceHost using the specified service and base address /// & lt; / Summary & gt; /// & lt; Param name = "service type" & gt; & Lt; / Param & gt; /// & lt; Param name = "baseAddresses" & gt; & Lt; / Param & gt; /// & lt; Returns & gt; & Lt; / Returns & gt; Protected Override ServiceHost CreateServiceHost (Type Service Type, URI [] baseAddresses) {ServiceHost host; Host = new service host (service type, baseadress); MyGlobalStaticClass.Address = baseAddresses [0]; // Assume that you want to know the endpoint first; return host; }
(in your MyGlobalStaticClass.cs):
public static string address = "";
No comments:
Post a Comment