WCF tracing in Azure production - wcf

How do I set WCF tracing in Azure (production environment) so that I'll have logging of all WCF errors?

Can't you use Windows Azure Diagnostics for this purpose? Once it is properly configured, your trace logs will be available in a Windows Azure Storage account that you have specified in your code. More information about Windows Azure Diagnostics can be found here: https://www.windowsazure.com/en-us/develop/net/common-tasks/diagnostics/.

Just like Guarav said, you can simply use the Azure diagnostics to log all errors to your storage account (there's a good read in the MSDN Magazine: Take Control of Logging and Tracing in Windows Azure).
Now I personally don't like the 'flat' logging when working with WCF. I find it very important to be able to trace through activities. That's why for all Azure projects where I use WCF I don't use the normal diagnostics.
I use a trick documented by Christian Weyer where I log to a classic *.svclog file and have those files shipped to my storage account. Then I use the CloudBerry Storage Explorer to simply view those logs that include the activites. This is possible by creating a custom XmlWriterTraceListener that writes to a local resource which is shipped to your storage account.

Related

Gridgain console load balance

I have Gridgain three node cluster and also running Gridgain web console agent and web console on all three nodes. It is all hosted on Windows Server.
I would like to load balance My web console. The problem is I don't know how to share user registration database which it stores in a work directory. Can I use external database to store all that information so that my cluster uses the same database?
There is a problem with Web Console Agent as well. How do I share tokens stored in default.properties?
There is no definitive guide on how to create a cluster for web console for high availability.
Can someone please guide me on how can I form a cluster for a Web console sharing its user store and tokens?
Thanks
If you are looking for multi-cluster support, take a look at documentation:
https://www.gridgain.com/docs/web-console/latest/multi-cluster-support
If you are looking for agent fault-tolerance: just start several agents. Fisrt agent will process all messages, other will be in the hot-stand-by mode.
If you are looking for connection fault-tolerance between agent and cluster (if cluster node failed that is a connection point for agent, Web Console will loose connection to cluster), just specify several nodes addresses as comma-separated list for "node-uri" parameter (in default.properties or as command-line argument).
For example:
node-uri=http://192.168.0.1:8080,http://192.168.0.2:8080;http://192.168.0.3:8080
Hope this helps.

How to Enable Geo-Replication

Is it possible to enable the Geo-Replication in an already running VM?
How we can make sure that Geo-Replication is working?
Is there any other option for securing the Data safe?
You have to enable geo replication on your storage account associated with your VM (Azure storage account you used while creating the VM). You can enable this via Service Management REST APIs for Create and Update Storage Account or via the Windows Azure Portal. Current options for geo replicating data in your storage account are GRS (Geographically Redundant Storage) and RA-GRS (Read-Access Geographically Redundant Storage). For more information on this, please refer to blog post here.
I guess you mean Ge-Replication for a Storage Account. You should be able to enable it from the management portal.
You can optionally enable read from secondary, which will give you read access to the data on the secondary.

How can I enumerate all currently executing WCF operations?

I'd like to get/create a collection of all currently executing operations and select metadata (available from OperationContext).
Read this article, is there library to queue and eventualy cancel async opertions in WCF. It can be useful in your case.
If you plan to build monitoring tool You can host WCF services using the appfabric framework on Windows Server. Appfabric provides an IIS extension that can be configured to trace and log WCF calls to a SQL Server DB and have monitoring dashboard in IIS admin console. More information here and here.

Azure diagnostics with WCF hosted in azure

Could someone please confirm whether azure diagnostics is possible for WCF hosted in azure?
I followed this guide: http://blogs.msdn.com/b/sajid/archive/2010/04/30/basic-azure-diagnostics.aspx
After doing Trace.WriteLine("Information","testing").
I was expecting a WADTable on azure storage, but not appearing.
Thanks
What was your transfer period, filter level, and how long did you wait to see it appear? Do you have the AzureDiagnostics trace listener in your config file (or added programmatically). Nothing willl appear if you are not using the listener.
Diagnostics by default are aggregated locally and will never appear in your storage account unless you actually initiate a transfer with the correct filter level (Undefined will do it all). There are billing reasons why that is the case, btw (it costs you money in Tx and storage).
This blog post is about 18 months old and there have been some breaking changes for Windows Azure Diagnostics since then from SDK perspective. Please refer to the latest SDK documentation or these blog posts:
http://convective.wordpress.com/2010/12/01/configuration-changes-to-windows-azure-diagnostics-in-azure-sdk-v1-3/
http://blog.bareweb.eu/2011/03/implementing-azure-diagnostics-with-sdk-v1-4/

Windows Service Container

For my projects I need quite often to create windows services.
I need them for scheduling operations, file system watching, asynchronous or long running side tasks (backup files, sending messages, check incoming mail to process, notifications etc).
I also use them to expose WCF services that are cross applications in the enterprise.
The self hosted scenario seems to me more appropriate as we are still on II6 that is quite limited (only http) for exposing WCF.
Most of) the services need also to expose some kind of administration interface (web or desktop) for reporting, starting and stopping the various services etc.
Seems strange to me that a "host container" that leverages most of these features (host, install new services, remote ui for admin, exposing wcf, scheduling etc) with some kind of mef plugins doesn't already exists.
What are the options if I do not want to start from scratch?
I am a developer for an open source windows service hosting framework called Daemoniq. I understand how installers can be an inconvenience so creating installers on the fly is one of its features. You can download it from http://daemoniq.org
Current features include:
container agnostic service location via the CommonServiceLocator
set common service properties like serviceName, displayName, description and serviceStartMode via app.config
run multiple windows services on the same process
set recovery options via app.config
set services depended on via app.config
set service process credentials via command-line
install, uninstall, debug services via command-line
Please feel free to have a look at it. Code contributions are also welcome =D
Thanks!
There is one host server in development (Microsoft) - codename Dublin.
The possible option would be to create one Windows Service - host application, which will load all of your WCF services and create ServiceHost for each of them (for instance, through reflection).
Having only one windows service would make it easy to administer all service hosts (you wouldn't have to administer windows service, but only in-process hosts).