IIS应用程序:如何获取唯一ID

时间:2014-02-10 15:35:09

标签: c# iis guid

我有一个管理IIS应用程序实例的应用程序,所以我正在寻找一种GIUD来识别每个应用程序。在IIS中部署应用程序时必须创建此GUID,并且必须持久保存到IIS / Windows更新/重新启动。

我不需要使用Microsoft.Web.Administration:我想要一个简单的方法,对于每个IIS应用程序,它返回其唯一ID(通过在其中调用的方法)。

这是我正在寻找的一个例子,我希望有一个由此返回的唯一ID。????? :

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

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

您可以将程序集GUID用于此目的:在 AssemblyInfo.cs,中,您可以找到

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

要阅读此值,您可以使用:

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;
  }
}

取自另一个SO答案(你可以找到here)。

如果需要,Visual Studio允许您通过菜单工具 - > 创建新的GUID 。创建GUID - 如果您需要另一个。

或者在C#中你只需使用

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

创建新的GUID。

答案 2 :(得分:0)

我必须做类似的事情。

  1. 阅读web.config文件以获取HostId设置。最好将配置文件拆分为两个,其中一个配置文件是安装本地的,并且在升级到新版本的网站时不会被替换。
  2. 如果web.config中不存在HostId值,请调用Guid.NewGuid()以生成新值。
  3. 将新值保存到Web配置,最好是在本地部分/文件中。
  4. 返回值。
  5. 这是一些伪代码:

        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;
            }
        }