Filestream - Either a required impersonation level was not provided, or the provided impersonation level is invalid.

L’eccezione:
Either a required impersonation level was not provided, or the provided impersonation level is invalid.
o in italiano
Non è stato specificato un livello di rappresentazione necessari, o il livello di rappresentazione fornito non è valido.
viene scatenata quando si tenta di accedere al filestream di Sql Server 2008 installato su un Windows Server 2008 R2 da una macchina che non è Windows Server 2008 R2.

Il workaround che utilizzavo era appunto installare il componente che doveva accedere al filestream  su una macchina 2008 r2, oggi mi si è presentato uno scenario dove non posso utilizzare la stessa strategia.

Ho trovato un Hotfix (anche un po’ datato)  http://support.microsoft.com/kb/2255379/en-us che risolve il problema, installato e tutto ha funzionato correttamente.

Tag di Technorati: ,,

Monitorare la cpu con i performance counter

Avevo la necessità di monitorare la cpu di un pc che ogni tanto schizzava al 100%.

Ho fatto una ricerca veloce in internet ma non ho trovato niente di facilmente utilizzabile (se avete suggerimenti li accetto volentieri).

Ricordando dalla certificazione del framework che c’era la possibilità di leggere i PerformanceCounter ho scritto una piccola classe che fa al caso mio.

public class ProcessorTimeMonitor
{
    public delegate void AlertEventHandler(object sender, EventArgs e);
    public event AlertEventHandler OnAlert;
    public delegate void DetectEventHandler(object sender, DetectEventArgs e);
    public event DetectEventHandler OnDetect;

    private System.Timers.Timer timer = null;
    private PerformanceCounter pc;

    private int occurrences = 0;
    private float processorTimeLimit;
    private int occurrencesLimit;

    public ProcessorTimeMonitor(float processorTimeLimit, int occurrencesLimit)
    {
        this.processorTimeLimit = processorTimeLimit;
        this.occurrencesLimit = occurrencesLimit;

        pc = new PerformanceCounter("Processor", "% Processor Time", "_Total");

        timer = new System.Timers.Timer(1000);
        timer.Elapsed += new System.Timers.ElapsedEventHandler(Detection);
    }

    private void Detection(object sender, System.Timers.ElapsedEventArgs e)
    {
        float value = pc.NextValue();

        if (OnDetect != null)
            OnDetect(this, new DetectEventArgs(value));

        if (value >= processorTimeLimit)
            occurrences++;
        else
            occurrences = 0;

        if (occurrences > occurrencesLimit)
        {
            occurrences = 0;

            if (OnAlert != null)
                OnAlert(this, new EventArgs());
        }
    }

    public void Start()
    {
        timer.Start();
    }

    public void Stop()
    {
        timer.Stop();
    }

    public class DetectEventArgs : EventArgs
    {
        public DetectEventArgs(float value)
        {
            this.Value = value;
        }

        public float Value { get; set; }
    }
}
Tag di Technorati: ,
«marzo»
domlunmarmergiovensab
272812345
6789101112
13141516171819
20212223242526
272829303112
3456789