Я новичок в шарепойнт. У меня есть несколько вопросов по развертыванию sharepoint. Было бы неплохо с вашей стороны, если бы кто-нибудь разъяснил мне эти вопросы.

Мне нужно развернуть одно приложение/сайт sharepoint с одного сервера на другой сервер. в приложении присутствует множество файлов, таких как .ascx (созданный через asp.net), веб-части .dll и workfolwsetc. как мне развернуть все эти файлы с одного сервера на другой. это для тестирования (другой сервер). также в проекте существует более 10 файлов решений (содержащих все файлы).

Я пробовал кое-что делать на разных сайтах, например, используя target, makecab и т. д., но это меня немного сбивает с толку. поскольку в моем приложении нет файла манифеста, и существует более одного файла решения. мне нужно написать собственный файл манифеста для отдельного решения или один для проекта, или он должен быть предоставлен разработчиком? каким должен быть путь для функции, xmls рабочего процесса в ddf. где развернуть файл wsp. также какова процедура заполнения сайта после развертывания файла wsp на сервере.

Мне нужно воссоздать все сайты на целевом сервере?

Есть ли какой-либо бесплатный инструмент, который я могу использовать для развертывания? если да, то какую часть мы можем развернуть: веб-часть или рабочий процесс?

Мы можем использовать NAnt для этой деятельности?

Заранее спасибо.

1
jkpadhi 9 Авг 2009 в 00:24
Просто чтобы уточнить ... ваш пост подразумевает, что вы не развернули все файлы своего приложения в виде решений wsp. Если он пытается взять некоторые приложения, развернутые таким образом бессистемно, и успешно развернуть их на другом сервере, что можно сделать для облегчения этого? Кажется утомительной проблемой.
 – 
Chris Farmer
10 Авг 2009 в 23:08

2 ответа

Вы можете использовать stsadm для копирования базы данных контента с одного сервера на другой. Эту задачу определенно можно автоматизировать с помощью nant (это то, что мы делаем).

Используя stsadm -o backup, вы можете создать резервную копию своих баз данных контента и конфигурации. Затем вы восстанавливаете их с помощью stsadm -o restore. Например:

stsadm -o backup -url http://yoururl -filename prodsite.dat -overwrite

stsadm -o restore -url http://newurl -filename prodsite.dat -overwrite

Я настоятельно рекомендую администрирование SharePoint 2007. Может быть очень легко сбросить установку SharePoint, если вы не знаете, что делаете.

1
Robert S. 9 Авг 2009 в 07:24
Большое спасибо за материалы. Что означает любая база данных контента? все файлы dll, ascx, webparts, xml попадают в базу данных контента? Пожалуйста, проясните меня.
 – 
jkpadhi
9 Авг 2009 в 00:56
Еще один запрос. как stsadm работает с nant для копирования базы данных контента. нужно ли поддерживать какую-либо структуру папок (иерархию)? мне нужно заботиться о записях файла web.config для dll?
 – 
jkpadhi
9 Авг 2009 в 01:04
Базы данных контента хранятся на сервере SQL, к которому подключается ваш SharePoint. Он содержит весь контент для вашего сайта SharePoint, который вы можете просмотреть в SharePoint Designer.
 – 
Robert S.
9 Авг 2009 в 07:21
Вы можете использовать NAnt для запуска команды stsadm. Любые приложения, которые у вас есть внутри SharePoint (например, приложение ASP.NET, настроенное в IIS и вызываемое вашим приложением SharePoint), необходимо будет развернуть отдельно.
 – 
Robert S.
9 Авг 2009 в 07:22
Большое спасибо за ваши комментарии. не могли бы вы порекомендовать какой-либо сайт/документ для этой деятельности?
 – 
jkpadhi
9 Авг 2009 в 12:13

Если все ваши файлы находятся в решениях (WSP), просто разверните их на другом сервере. Затем скопируйте базы данных контента, просто сделав резервную копию исходной базы данных контента на сервере sql, и восстановите ее на сервере базы данных новой среды. Затем заново создайте веб-приложения на новом компьютере, указав имена баз данных контента, чтобы они соответствовали именам только что восстановленных баз данных. Затем разверните решения для исправления веб-приложений.

Изменить

// ДОБАВЛЕНИЕ МОДА WEB.CONFIG

SPWebConfigModification modification = GetModification(key, value);
if (!webApp.WebConfigModifications.Contains(modification))
{
  webApp.WebConfigModifications.Add(modification);
  webApp.Farm.Services.GetValue<SPWebService>().ApplyWebConfigModifications();
  webApp.Update();
}

И метод GetModification (некоторое время назад нашел его в Интернете)

private static SPWebConfigModification GetModification(string key, string value)
{
  if (string.IsNullOrEmpty(key))
  {
    throw new ArgumentNullException("key", "The key parameter is mandatory");
  }

  if (string.IsNullOrEmpty(value))
  {
    throw new ArgumentNullException("value", "The value parameter is mandatory");
  }

  var modification = new SPWebConfigModification
  {
    Name = String.Format(CultureInfo.InvariantCulture, @"add[@key=""{0}""]", key),
    Path = "configuration/appSettings",
    Value = String.Format(CultureInfo.InvariantCulture, @"<add key=""{0}"" value=""{1}"" />", key, value),
    Owner = Assembly.GetExecutingAssembly().FullName,
    Sequence = 0,
    Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode
  };
  return modification;
}
1
Colin 23 Авг 2009 в 03:13
Большое спасибо за ваши комментарии. Могу ли я создать wsp для всех моих файлов? если да, то из каких файлов мне нужно создать wsp и какова процедура создания wsp?
 – 
jkpadhi
9 Авг 2009 в 12:11
Как сказал Walm3864, WSPBuilder - это то, что вам нужно, если вы погуглите WSPBuilder, вы найдете его в codeplex и ссылках на достаточное количество руководств.
 – 
Colin
10 Авг 2009 в 13:57
Большое спасибо за информацию. Я создал wsp и сделал резервную копию базы данных conetent. теперь я могу развернуть решение с восстановлением и развертыванием wsp вручную. в этом процессе я не могу вносить изменения в файл web.config. мне нужно внести много изменений в мой web.config с помощью Entris для служб, веб-частей и настроек приложения. как я могу автоматизировать это? можно сделать это один раз, как установщик?
 – 
jkpadhi
22 Авг 2009 в 23:52
Вы можете вносить изменения в web.config, используя класс SPWebConfigModification, см. пример редактирования в моем ответе.
 – 
Colin
23 Авг 2009 в 03:10
Большое спасибо за ваш вклад. У меня есть одно сомнение. Как я могу отредактировать файл web.config сайта. Могу ли я сделать установщик, который развернет базу данных контента и файл wsp, а также обновит файл web.config? мне нужно сделать много записей для безопасного управления, настройки приложения и некоторых других мест. могу ли я автоматизировать это? Как получить web.config нового сайта: порт во время выполнения/установки?
 – 
jkpadhi
28 Авг 2009 в 21:01