Я собираюсь использовать Kentico для создания более одного магазина (сайта) и назначить пользователя для каждого магазина добавлять/изменять/удалять его продукты, я создал 2 магазина, первый из которых с доменом localhost: 8080, а второй - storeone .localhost: 8080 как документация, указанная в Kentico Doc URL, я могу открыть первый сайт без проблем, но когда я попытался переключиться на второй сайт, он дал мне Bad Request - Invalid Hostname .. может кто-нибудь мне помочь? .. Также я был бы признателен, если кто-нибудь поможет мне в том, как извлекать данные о продукте с помощью API Kentico в качестве документации, предоставляя мне только обновление/модификацию/удаление данных из базы данных, и я хочу знать, как отображать его с помощью вложений, таких как изображения pdf что я загрузил его.Создание нескольких сайтов в Kentico?
ответ
Лучший подход - использовать два разных порта. Причина этого заключается в том, что IIS по умолчанию привязан к порту 80. Так что я бы сделал, оставив один сайт на 80 и сделать еще один, скажем 2. Сделайте эти привязки в IIS, затем перейдите в Kentico и добавьте второй сайт в localhost: 2 против: 8080. Там есть конфликт с номерами портов. Kentico и IIS «сбиты с толку» и не знают, какой из них обслуживать. Единственный способ, которым он будет работать с одним и тем же портом, - запустить и остановить сайты в Kentico.
Бренден прав - не может быть двух сайтов, работающих в одном домене. Что вам нужно сделать, это настроить IIS bindings. То, что я часто делаю то, что я могу настроить файл хостов (C: \ Windows \ System32 \ Drivers \ Etc) и добавить еще несколько правил, как:
127.0.0.1 localhost2
127.0.0.1 localhost3
И тогда я могу использовать связать свои сайты Kentico в эти домены. Не забудьте также изменить доменные имена в Kentico -> Сайты приложение.
Что касается вашего второго вопроса:
Это зависит от того, хотите ли вы получить только SKUInfo объект или объект страницы, где пользовательские данные (поля страницы типа) сохраняются. Если вам просто нужно SKUInfo вы можете использовать что-то вроде:
// gets only corresponding SKU Info object
var singleProduct = SKUInfoProvider.GetSKUInfo(1); // SKUID from COM_SKU table
if (singleProduct != null)
{
var name = singleProduct.SKUName;
var price = singleProduct.SKUPrice;
}
Если вам нужно получить продукт со всеми пользовательскими полями, которые необходимо использовать API Страницы, как вы бы с любой другой страницы. Простой пример:
// gets sku with all custom properties
var tree = new TreeProvider(MembershipContext.AuthenticatedUser);
var singleProduct = tree.SelectSingleDocument(2); // DocumentID from CMS_Document table
if (singleProduct != null)
{
// work with product
}
// or for multiple products
var products = tree.SelectNodes("custom.myProductType");
foreach (var product in products)
{
// work with products/pages
}
Для извлечения страниц я настоятельно рекомендую проверить this documentation article, который содержит много примеров.
Я попытался отредактировать файл хоста по указанному пути, я добавил одну строку: 127.0.0.1:2 localhost .. но это не сработало в Kentico – Dii