Bir Programcıyı Neden Bölmemelisiniz?

Sık yaşadığımız bir durumu özetleyen, güler misin ağlar mısın tarzı bir karikatür. Çok hoşuma gitti paylaşmak istedim. Karikatürü yazının devamında bulabilirsiniz. Bölünmemek dileğiyle, Sevgiler…

ProgrammerInterrupted

SharePoint 2013 - The tool was unable to install Application Server Role, Web Server (IIS) Role

Bugün Wndows Server 2012 üzerinde SharePoint 2013 kurulumu yapmaya hazırlanırken SharePoint 2013 Products Preparation Tool başlıktaki hatayı verdi. Oldukça popüler bir hata olduğundan olsa gerek çeşit çeşit çözüm önerileri sunulmuş ve her bir öneri birilerinin hatasını gidermiş. Benim için çözüm olan yöntem ise şu şekildeydi:

  1. Başlat ekranına MMC yazıp çalıştırıyoruz.
  2. File menüsünden Add/Remove Snap-in seçiyoruz.
  3. Group Policy Object Editor seçip ekliyoruz.
  4. Computer Management > Administrative Templates > System yolunu izliyoruz.
  5. Specify Settings for optional component installation and component repair” seçiyoruz.
  6. Enable seçip “Contract Windows Update directly to download repair content instead of Windows Server Update Services (WSUS)” önündeki checkbox’ı işaretliyoruz.

Bu adımları izledikten sonra Preparation Tool IIS’i kurup devam edebildi. İyi çalışmalar.

Central Administration Sitesine Ulaşamama Problemi

Bugün yine canımız cananımız SharePoint‘in bir sorunuyla karşılaşıp çözümünü tecrübe ettiğim için not etmek istedim. 2 adet SharePoint sunucusu bulunan farmımızdan, bu sunuculardan bir tanesini çıkarmamız gerekti. Her iki sunucu üzerinde de Central Administration (kısaca CA) sitesi bulunuyordu, ancak CA sitesine ulaştığımız adres (url) farmdan çıkaracağımız servera işaret ediyordu. Farmda kalacak sunucu üzerinde de Central Administration bulunduğundan ve çıkarma işlemini “SharePoint 2010 Products Configuration Wizard” ile yapacağımızdan, iç taraftaki güncellemeleri SharePoint yapacaktır diye düşünmüştüm. Tabi ki yanılmışım :)

Sunucuyu farmdan çıkardıktan sonra artık CA sitesine ulaşılamıyordu. Sorunu çözmek için aşağıdaki yolu izleyebiliriz:

  1. Farmda kalan sunucuda SharePoint 2010 Products Configuration Wizard‘ı çalıştırıp ilerlerken Host Central Administration Web Application başlığına geldiğimizde aşağıdaki ekran görüntüsündeki gibi “Use this machine to host the web site” seçiyoruz. Use-this-machine-to-host-the-web-site

  2. SharePoint 2010 Products Configuration Wizard başarıyla tamamlandığında CA sitesinin url’ini başarıyla güncellediğini görüyoruz. Ancak Finish‘e tıkladığımızda halen eski url’i açmaya çalışıyor. Aynı şekilde başlat menüsündeki Central Administration linki de bizi eski sunucuya göndermeye çalışıyor. Daha enteresan olanı tarayıcımızda http://yenisunucu:yeniport şeklinde ulaşırsak sayfa görüntülenemezken, http://yenisunucu:yeniport/default.aspx şeklinde yazdığımızda sayfaya ulaşabiliyor.

  3. Bu aşamada default.aspx ile birlikte CA sitemizi görüntüleyip System Settings > Configure Alternate Access Mappings bölümüne geçiyoruz. CA için oluşturulmuş ve eski sunucuyu işaret eden kayıtları düzenleyip, eski url’leri yenileriyle değiştirip kaydediyoruz.

  4. Bu aşamada herşeyin tamamlanmış olmasını bekliyoruz. Evet, kontrol ediyoruz… Tabi ki halen eski sunucuya yönlendiriliyoruz :) Şimdi de regedit.exe programını çalıştırıp şu yolu izliyoruz:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\14.0\WSS\
    
  5. Buradaki CentralAdministrationURL değerini http://yenisunucu:yeniport/ şeklinde değiştirip kaydediyoruz.

Artık CA sitesi yeni adresinden ve tüm linkler aracılığıyla erişilebilir durumda. İyi çalışmalar.

SharePoint 2013 Takipçiler ve Takip Edilenler

SharePoint 2013 ile bir sosyal portal geliştiriyorsak geçerli kullanıcıya ait takipçi / takip edilen bilgilerine Javascript Object Model ile ulaşmamız gerekebiliyor. Bunu Facebook ya da Twitter’da olduğu gibi, “x yeni takipçi” şeklinde bir bildirim mesajı ile bu takipçilerin kim olduklarını gösterecek bir arayüz geliştirebiliriz. Aşağıdaki örnek MSDN’de bulunsa da göz önünde bulunması için paylaşmak istedim. Hepsinden önce, sayfamızda SP.js ve SP.UserProfiles.js dosyalarının sayfamıza eklenmiş olması gerekiyor. Bu kodların DOM yüklendikten sonra çalışmasını istediğimizden tabi ki jQuery‘e de ihtiyacımız var.

<SharePoint:ScriptLink name="SP.js" runat="server" ondemand="false" localizable="false" loadafterui="true" /> 
<SharePoint:ScriptLink name="SP.UserProfiles.js" runat="server" ondemand="false" localizable="false" loadafterui="true" />
var followed;
var followers;

$(document).ready(function () {
    SP.SOD.executeOrDelayUntilScriptLoaded(getFollowedAndFollowers, 'SP.UserProfiles.js');
});

function getFollowedAndFollowers() {
    var clientContext = SP.ClientContext.get_current();
    var followingManager = new SP.Social.SocialFollowingManager(clientContext);
    followers = followingManager.getFollowers();
    followed = followingManager.getFollowed(1);
    clientContext.executeQueryAsync(showFollowedAndFollowers, requestFailed)
}

function showFollowedAndFollowers() {
    var results = followed.length + 'kişiyi takip ediyorsunuz:\n';
    for (var i = 0; i &lt; followed.length; i++) {
        var user = followed[i];
        var name = user.get_name();
        var personalSiteUri = user.get_personalSiteUri();
        var pictureUri = user.get_imageUri();
        results += '\n' + name + '\n' + personalSiteUri + '\n' + pictureUri + '\n';
    }

    results += '\n' + followers.length + ' kişi sizi takip ediyor: \n';
    for (var i = 0; i &lt; followers.length; i++) {
        var user = followers[i];
        var name = user.get_name();
        var personalSiteUri = user.get_personalSiteUri();
        var pictureUri = user.get_imageUri();
        results += '\n' + name + '\n' + personalSiteUri + '\n' + pictureUri + '\n';
    }
    alert(results);
}

function requestFailed(sender, args) {
    $('#message').html('Error: ' + args.get_message());
}

PowerShell - Correlation ID ile Hata Ayrıntılarını Görmek

SharePoint ile tanıştığım günden beri sayısız kez karşılaştığım ekran budur sanırım: “Sorry, something went wrong”. Bu hatayı bir Correlation ID ile bize gösteren SharePoint, hata detaylarını log dosyalarında saklıyor bildiğimiz gibi. Log dosyalarında bu ID’yi arayarak hata detaylarını bulmaya çalışmak yerine, aşağıdaki satırları PowerShell‘de çalıştırmak bize ilgili hatanın detaylarını getirecektir.

get-splogevent | ?{$_.Correlation -eq "&lt;Correlation ID&gt;"} | select Area, Category, Level, EventID, Message

retrieve-log-by-correlation-id

Aşağıdaki gibi bir ekleme yaparak C:\hata.txt dosyasına bu detayları kaydetmek de isteyebilirsiniz.

get-splogevent | ?{$_.Correlation -eq "&lt;Correlation ID&gt;"} | select Area, Category, Level, EventID, Message | Format-List &gt; C:\hata.txt

Hata ayıklamada hepinize başarılar :) Görüşmek üzere…