Hosting SemantivLogging.svc inside other web-application

Topics: Semantic Logging Application Block
Jul 1, 2013 at 12:17 PM
In our project we have a Client that communicates with our backend via WCF services. that are hosted in a separate web-application.

To try and minimize the install and update process, we thought about embedding the SemanticLogging webservice inside the web-application containing our other WCF services to be able to use it out-of-proc.

Has anyone tried this or is there a good reason not to go down that road?

Thanks in advance for any help

Jul 2, 2013 at 9:25 AM
Edited Jul 2, 2013 at 9:28 AM
It will work if all applications are running on the same host PC. You need to install the Semantic logging OUT-OF-PROCESS service. Each web application only needs to define an EventSource class. (And a ref to the Semantic logging, use nuget) Choose your names wisely so you can sort them after.

Here's an example of OUT-OF-PROCESS logging

Not certain if I understood your question, is this what you were looking for?

greetings Damien
Jul 3, 2013 at 2:48 AM
@PerLundBovbjerg, I'm not sure I understand what you are trying to do. The Semantic Logging Block has a windows service/console host for an out of process scenario that needs to run on the same machine as the process(es) that generate the events. To my knowledge, there is no out of the box "SemanticLogging webservice".

Randy Levy
Enterprise Library support engineer
Support How-to
Jul 3, 2013 at 8:10 AM

Thx for your answers, I was under the impression that the SemanticLogging.svc actually was a WCF service hosted by IIS, but I read up on it and can see i was mistaken there.
As out product already has a complicated installation process, and consists of a web-application that hosts WCF services, i thought (mistakenly) about hosting the SemanticLogging.svc with the other WCF services.

Maybe you can answer me if we should use in-proc or out-of-proc be using for a Client-Server product setup, where multiple clients will run on different machines logging using SQLSink, that is setup to use a database on the server. Our Server also logs to the same database using SQLSink. Is this feasible or would a better approach be to let each client log on the clients machine and let the server log to the database?

Out setup:
So far we have implemented SLAB with a custom eventsource and in-proc SQLSink that logs to a common database on the server.
The product we make, is a Client-server solution that consists of the following modules:
  • Multiple clients (Winform application on different machines)
  • WCF services (bundled in one deployed web application project)
  • Windows service running on the server
  • SQLServer
Hope the question is more clear now, and thanks in advance for your time.