我有一个管理IIS应用程序实例的应用程序,所以我正在寻找一种GIUD来识别每个应用程序。在IIS中部署应用程序时必须创建此GUID,并且必须持久保存到IIS / Windows更新/重新启动。
我不需要使用Microsoft.Web.Administration:我想要一个简单的方法,对于每个IIS应用程序,它返回其唯一ID(通过在其中调用的方法)。
这是我正在寻找的一个例子,我希望有一个由此返回的唯一ID。????? :
public class MvcApplication : System.Web.HttpApplication
{
string myUniqueID {
get { return this.?????; }
}
}
感谢您的帮助。
答案 0 :(得分:1)
HostingEnvironment.ApplicationID
答案 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)
我必须做类似的事情。
这是一些伪代码:
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;
}
}