Question

I have an application that manage IIS Application instances so I am looking for a kind of GIUD to identify each applications. This GUID must be created when the application is deployed in IIS and must be persistent to IIS/Windows updates/restarts.

I did not need the use of Microsoft.Web.Administration: I want a simple way, for each IIS application, it returns its unique ID (by a method called within it).

Here is an example of what I'm looking for and I'd like to have an unique id returned by this.????? :

public class MvcApplication : System.Web.HttpApplication
{
     string myUniqueID {
         get { return this.?????; }
     }
}

Thanks for help.

OTHER TIPS

I had to do something similar.

  1. Read the web.config file for a HostId setting. Preferably split your configuration file into two, with one config file that is local to the install, and doesn't get replaced upon upgrading to a new version of the website.
  2. If the HostId value doesn't exist in the web.config, call Guid.NewGuid() to generate a new value.
  3. Save the new value to the web config, preferably in the local section/file.
  4. Return the value.

Here is some psuedo-code:

    public Guid HostId
    {
        get
        {
            var result = GetSetting(ConfigFileLocalSettingList.HostId).TryToGuid();
            if (result == null)
            {
                result = Guid.NewGuid();
                SetSetting(ConfigFileLocalSettingList.HostId, result.ToString());
                Save();
            }
            return result.Value;
        }
    }

You can use the assembly GUID for this purpose: In AssemblyInfo.cs, you can find

// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("307E39B9-2C41-40CF-B29F-84C8BBCD6519")]

To read this value, you can use:

public static string AssemblyGUID
{
  get {
    var assembly = Assembly.GetExecutingAssembly();
    var attribute = (System.Runtime.InteropServices.GuidAttribute)assembly.GetCustomAttributes(typeof(System.Runtime.InteropServices.GuidAttribute), true)[0];
    var GUID = attribute.Value;
    return GUID;
  }
}

which is taken from another SO answer (you can find it here).


And if it is required, Visual Studio allows you to create a new GUID via menu Tools -> Create GUID - if you need a different one.

Or in C# you simply use

var newGuid=(Guid.NewGuid()).ToString();
Console.WriteLine(newGuid);

to create a new GUID.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top