2014-02-10 8 views
1

У меня есть приложение, которое управляет экземплярами приложений IIS, поэтому я ищу своего рода GIUD для идентификации каждого приложения. Этот GUID должен быть создан при развертывании приложения в IIS и должен быть постоянным для IIS/Windows обновлений/перезапусков.Приложение IIS: как получить уникальный идентификатор

Мне не нужно было использовать Microsoft.Web.Administration: я хочу, чтобы простой способ для каждого приложения IIS возвращал свой уникальный идентификатор (методом, вызываемым внутри него).

Вот пример того, что я ищу, и я хотел бы иметь уникальный идентификатор, возвращенный этим. :

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

Спасибо за помощь.

+1

Гм .... [ 'Guid.NewGuid'] (http://msdn.microsoft. ком/EN-US/библиотека/system.guid.newguid (v = vs.110) .aspx)? – tnw

+0

Вопрос отредактирован :) – user3293461

+0

Да, создайте поле GUID и присвойте ему значение при запуске. Затем верните его в этом методе. – tnw

ответ

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.

0

Мне нужно было сделать что-то подобное.

  1. Прочтите файл web.config для параметра HostId. Предпочтительно разделить файл конфигурации на два, с одним конфигурационным файлом, который является локальным для установки, и не заменяется при обновлении до новой версии веб-сайта.
  2. Если значение HostId не существует в файле web.config, вызовите Guid.NewGuid(), чтобы сгенерировать новое значение.
  3. Сохраните новое значение в веб-конфигурации, желательно в локальном разделе/​​файле.
  4. Вернуть значение.

Вот некоторые псевдо-код:

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; 
     } 
    } 
Смежные вопросы