2016-04-24 3 views
0

Я собираюсь использовать Kentico для создания более одного магазина (сайта) и назначить пользователя для каждого магазина добавлять/изменять/удалять его продукты, я создал 2 магазина, первый из которых с доменом localhost: 8080, а второй - storeone .localhost: 8080 как документация, указанная в Kentico Doc URL, я могу открыть первый сайт без проблем, но когда я попытался переключиться на второй сайт, он дал мне Bad Request - Invalid Hostname .. может кто-нибудь мне помочь? .. Также я был бы признателен, если кто-нибудь поможет мне в том, как извлекать данные о продукте с помощью API Kentico в качестве документации, предоставляя мне только обновление/модификацию/удаление данных из базы данных, и я хочу знать, как отображать его с помощью вложений, таких как изображения pdf что я загрузил его.Создание нескольких сайтов в Kentico?

ответ

1

Лучший подход - использовать два разных порта. Причина этого заключается в том, что IIS по умолчанию привязан к порту 80. Так что я бы сделал, оставив один сайт на 80 и сделать еще один, скажем 2. Сделайте эти привязки в IIS, затем перейдите в Kentico и добавьте второй сайт в localhost: 2 против: 8080. Там есть конфликт с номерами портов. Kentico и IIS «сбиты с толку» и не знают, какой из них обслуживать. Единственный способ, которым он будет работать с одним и тем же портом, - запустить и остановить сайты в Kentico.

0

Бренден прав - не может быть двух сайтов, работающих в одном домене. Что вам нужно сделать, это настроить 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, который содержит много примеров.

+0

Я попытался отредактировать файл хоста по указанному пути, я добавил одну строку: 127.0.0.1:2 localhost .. но это не сработало в Kentico – Dii