SharePoint Online’da Page Layout’tan Sayfalar Üretmek

 

PDF Dokümanların Tarayıcıda Doğrudan Açılması

Sharepoint içerisinde yayınladığınız PDF dokümanların kullanıcıların indirmesine etmesine gerek kalmaksızın veya tarayıcıda birtakım ayarlar yapmanıza gerek olmaksızın otomatik olarak açılabilmesi için PowerShell’de aşağıdaki komut setini çalıştırmanız işinizi görebilir.

 

MS Word’de Dummy Text Oluşturmak

Word kullanarak rastgele dokümanlar oluşturmak ve test dokümanlarınızda saçma, yanlış anlaşılmaya açık, gereksiz ve formatsız yazılarla uğraşmak yerine bu işi hızlıca Word’e hallettirmek istiyorsanız aşağıdaki komut ile bu konuda çözüme gidebilirsiniz.

Buradaki “p” paragraf sayısına, “s” ise satır sayısına karşılık gelen parametrelerimiz. Yani aşağıdaki örnek fonksiyon, 3 paragraftan oluşan ve her bir paragrafı 4 satırlık bir metin üretiyor sizin için.

SQL Server Sunucusunu Sonradan Domaine Almak

Daha çok test veya geliştirme ortamı senaryosu olabilir ancak yine de hiçbir zaman karşımıza çıkmayacağını düşünebileceğimiz kadar masum olmayan konulardan biridir bir sunucuyu yazılımsal işlemler sonrası aktif dizine (domain) almak. Canlı ortamlarında elbette gerekli kurumların bir ön gereksinimidir sunucunun aktif dizinde olması ama yukarıda da bahsettiğim gibi test veya geliştirme ortamlarında veya klonlanmış sanal ortamlarda sunucu adını değiştirmek, sunucuyu aktif dizine almak daha sık gerçekleştirilir.

Aktif dizin yokken konfigürasyonu yapılan bir yazılım, sunucu aktif dizine alındıktan sonra çok farklı davranabilir. Ben bu ufak bilgilendirme yazısında SQL Server üzerinden gitmek istiyorum. Sunucuyu SQL Server kurulumu sonrasında aktif dizine almayı denerseniz karşılaşacağınız temel senaryo şu şekildedir.

  • Named-Pipes protokolü “Disabled” duruma gelmiştir.
  • SQL Server Management Studio‘ya bağlanamazsınız.
  • SQL Server servisleri durmuştur ve başlatamazsınız.

Bu durumun üstesinden gelmek için öncelikle “SQL Server Configuration Manager” ile “Named-Pipes” ı yeniden “Enable” duruma getirin. Ardından Management Studio’ya bağlanamama ve servislerin başlamama sebebi olan kullanıcılarınız yetkisi kısmına geliyoruz. Aktif dizinden önce lokal hesaplarınız sunucuda yönetici rolündeydi ama artık lokal hiçbirşey kalmadı. O halde yeni kullanıcılarınıza hak vermeniz lazım. Bunun için bilinen en kısa yol Management Studio ve oraya erişiminiz yok. Öncelikle bir uyarı, aktif dizine alma işlemi öncesi sunucuda “SQL Server and Windows Authentication” özelliğini aktif hale getirin ve geçici de olsa “sa” kullanıcısına hak verin ki aktif dizine girdiğinizde yeni kullanıcılarınıza hak vermek için sisteme bağlanabilin.

Ama diyelim ki bu yazıyı okuduğunuzda iş işten geçmişti, o halde “SQLCMD” ye merhaba diyelim. Aşağıda yer alan komutlar ile SQLCMD üzerinden yeni kullanıcılarınıza hak verebilir ve hem SQL Server Management Studio erişimi hem de servislerinizin yeniden çalışmaya başlamasını sağlayabilirsiniz.

 

Hata: Web Application Oluştururken Sayfa Görüntülenemiyor Mesajı

SharePoint farmınızda yeni bir web application yaratmak istediğinizde bazen işlem bir süre devam edip ardından “Sayfa görüntülenemiyor” hata mesajı verebilir. Kontrol ettiğinizde web applicationın sadece Central Administration’ın barındırıldığı sunucu üzerinde yaratılmış olduğunu, farmın diğer web front-end rolündeki sunucularında ise henüz yaratılmamış olduğunu gözlemlersiniz.

Ve bu durumdayken web application altında bir site collection yaratmak istediğinizde hata mesajı alırsınız.

Hatanın çözümü için IIS altında Central Administration uygulaması için shutdown limitini yükseltmeniz yeterli olacaktır. İşlem adımları şu şekilde;

  • IIS üzerinde Central Administration uygulamasının application pool’una gidin.
  • Sağ tıklayın ve “Advanced Settings” kısmına gelin.
  • “Process Model” bölümü içerisindeki “Shutdown time limit” alanı değerini yükseltin. Mesela 200-250 gibi bir değer verebilirsiniz.
  • IIS’i restart edin (iisreset)

 

PowerShell Kullanarak Tüm SharePoint Health Analyzer Kurallarını Çalıştırmak

PowerShell’in artık işe yaramadığı bir nokta kalmadı gibi. Pek çoğumuzun yoğun kullanmadığı, gözümüze çarptıkça veya bir süre sonra sürekli kırmızı bir bant görmekten sıkılınca baktığımız bir yer SharePoint Health Analyzer ekranı. Aslında SharePoint 2010’dan bu yana hayatımızda olup özellikle ürünün kendi kendine kontrol edebileceği temel mimari adımları kontrol eden ve olması gerekenler için bizi yönlendiren bir arayüz.

Health Analyzer’ın varsayılan olarak kontrol ettiği yüzlerce temel kural var ve hatta daha fazlasını siz de yazabilir veya yazılmış bir çözüm dosyasını sisteme yükleyerek bu kuralların da kontrol edilmesini sağlayabilirsiniz.

Health Analyzer aslında her bir rule farklı zamanlamalara sahip olacak şekilde SharePoint Timer prosesinde çalışan bir yapı. Dolayısıyla bir job aracılığı ile tetikleniyor ve kurala uygun olan kurallar işletilerek sonucu tehlikeli, uyarı ve bilgi gibi kategorilerde karşımıza çıkıyor. Özellikle yeni kurulum sonrası ortam yapılandırmalarında bazen bu kuralların kendi zamanlamasını beklemeden tetiklenmesini isteyebilirsiniz. Bunun için aşağıdaki gibi bir PowerShell komutu işinizi görecektir.

PowerShell console’u “Run as Administrator” modda çalıştırmayı unutmamak gerekiyor elbette. Neticede yapılan işlem yönetici rolünün yetkili olduğu bir başlık.

DLL’i PowerShell Yardımıyla GAC’a Eklemek

Uygulamanıza ait DLL dosyasını GAC (Global Assembly Cache) ‘e yüklemek için pek çok yöntem bulunuyor. Bunlardan en kolayı şüphesiz GACUtil.exe. Ancak GACUtil Visual Studio kurulumunun bir parçası olarak karşımıza çıkıyor ve şüphesiz çoğumuzun özellikle canlı ortamda sunucu üzerine Visual Studio kurmak gibi bir şansımız yok. Bu nedenle artık Windows’un ayrılmaz parçası haline gelen PowerShell‘i kullanmak burada en iyi alternatif görünüyor.

Burada önemli olan nokta;

  • PowerShell console’u “Run as Administrator” modda açın.
  • İşlem sonrasında eğer bahsi geçen IIS üzerinde host edilen bir uygulama ise iisreset komutunu da çalıştırmayı unutmayın.

Hata: Maximum allowed Correlation Filter have been reached or exceeded

Geliştirmesini yaptığınız workflowlarda yoğun kullanımlar sonrası aşağıdaki gibi bir hata ile karşılaşabilirsiniz.

Exception command text: [dbo].[PerformBatchOperations], exception = Microsoft.ServiceBus.Messaging.QuotaExceededException: The number of maximum allowed CorrelationFilter have been reached or exceeded. Number of filters:100001, Max number of filters allowed: 100000.

Hatadan da anlaşılacağı üzere bu bir sorundan ziyade bir limitlemeye takıldığınız anlamını içerir. Sorunun çözümü için aşağıdaki adımları uygulamanız yeterli olacaktır.

  • Service Bus Farm’ı stop edin. Bu işlem için “Stop-SBFarm” PowerShell komutunu kullanabilirsiniz.
  • Limiti yükseltin. Bu işlem için “Set-SBRuntimeSetting -Name MaximumNumberOfCorrelationFiltersPerTopic -Value 1000000” PowerShell komutunu kullanabilirsiniz.
  • Veritabanı yöneticinizi açın ve SBMessageContainer01 veritabanında bir sorgu çalıştırın “UPDATE TopicsTable SET MaxCorrelationFilters = 1000000
  • Service Bu Farm’ı yeniden başlatın. Bu işlem için “Start-SBFarm” PowerShell komutunu kullanabilirsiniz.

PowerShell komutları için hem Service Bus PowerShell ekranını hem de Workflow Manager PowerShell ekranını kullanabilirsiniz.

SharePoint Saturday İstanbul 2018

Hata: Failed to update database “DBNAME” because the database is read-only

Kodladığınız uygulamanız içerisinde, bir batch işlemi çalıştırırken veya bir SSIS paketini çalıştırdığınızda, yani veritabanı üzerinde yazma işlemi yapmak istediğiniz herhangi bir zamanda bu hata ile karşılaşabilirsiniz.

“Failed to update database “DBNAME” because the database is read-only”

Yaptığınız kontrollerde database’in read-only modda olmadığını gözlemlemiş olabilirsiniz. Bunun için pek çoğunuzun bildiği üzere management studio üzerinden ilgili veritabanı ismi üzerinde sağ tıklamanız ve özellikler ekranında “Options” bölümüne gelmeniz ve en alta inmeniz yeterli. Burada “Read-Only” özelliğinin “False” olmasını bekliyoruz. “True” ise zaten hatanın sebebi açıkça ortadadır. Değeri değiştirmeniz yeterli olacaktır.

Biz bu bölümün “False” olmasına rağmen hatayı aldığımızı varsayalım. Bu durumda yapmanız gereken kontroller için aşağıdaki kod bloğunu kullanabilirsiniz. “AdventureWorks” örnek olarak kullanılmıştır. Bu bölümde kendi veritabanı isminizi verebilirsiniz.

 

 

Son olarak SQL Server Express versiyonunu kullananlar için bir ek hatırlatma. Burada AttachDbFileName kullanıyorsanız SQL Server servis hesabınızın Connection String’de belirttiğiniz dosya yoluna erişim ve yazma için izni olduğundan da emin olmalısınız.