Filed under: Yazılım
Aralık 21st, 2011
!!! Uyarı : Aşağıda yazılanlar tamamen yol, yordam ve fikir vermek amaçlıdır. Emin değilseniz, bu işlemleri bir danışman eşliğinde yapmanız faydalı olacaktır. !!!
Sharepoint serverınıza service pack geçmeye niyetlenirseniz internet üzerinde düzgün bir kaynak bulamayacağınızı göreceksiniz. Genelde Microsoft dökümanında yazanları yazmış herkes. Ama bunun dışındaki işlemler ve bunların sırası hakkında detaylı bir bilgi mevcut değil. Örneğin; Sharepoint Server 2010 Service Pack 1 Turkish Language Pack’in hatalı olduğunu, bunun zaten yüklenemediğinden kimse bahsetmemiş
Yani herşey düzgün bir şekilde ilerlerken, Language Pack yüklemesine sıra geldiğinde “Gerekli Sharepoint Versiyonu bulunamadı” ya benzer bir hata alacaksınız. Bu biraz adrenalin miktarınızı arttırabilir
Sırasıyla yapılacak işlemleri yazacak olursak:
-
En önemli ve ilk yapmanız şey mutlaka, backup prosedürünüze uygun bir backup alın (Sonuçta bu sharepoint sunucuları elinize alabileceğiniz bir gerçek

)
- DB Backup : Mutlaka Content DB’lerinizin bir kopyası bulunsun. Serverlara ek disk takıp mı alırsınız, harici diske mi backupları çıkarsınız bilmiyorum.
- Sharepoint Backup : Mümkünse ve gerekli donanımınız varsa bir adet bundan bulundurmakta fayda var.
- Sharepoint Backup alamıyorsanız, Solutionlarınızın veya bu solutionların kodlarının elinizde olduğunu kontrol edin.
- Mümkünse, serverlarınız sanal ortamdaysa, hepsinin tek tek klonunu almak en garanti yöntem olacaktır. Bir sorun olduğunda hiç birşey olmamış gibi bunları ayağa kaldırarak hizmet vermeye devam edebilirsiniz.
-
Mutlaka bir adet test ortamınız olsun.
Test ortamınız varsa;
- Production ile bire bir aynı yapıda ve içerikte olduğunu kontrol edin. Mümkünse dataları ve konfigürasyonları productiondan çekip, test ortamını güncelleyin.
- Aşağıda yazacak olduğum işlemleri ilk önce test ortamında uygulayın, bir sorun olmaması durumunda productionda işlem yapın.
-
Test ortamında çıkacak olan hataları düzeltip, başarılı bir upgrade işlemi sonrasında, aynı hataları productionda da düzeltip, service pack geçin
Test ortamınız yoksa;
- Test ortamı edinmeye gayret edin (yönetimden para isteyin, donanım isteyin, ram veya disk de isteyebilirsiniz
)
- Gözünüzü karartın.
- Her türlü riski göze alın.
- Backuptan dönmek için harcanacak olan zamanları düşünün ve haftasonu için erken planlar yapmayın
- Hala SP geçmek istiyorsanız aşağıdan devam edin.
- Networker, Avamar gibi bir tool ile tape backup alabilirseniz sizler için iyi olabilir. Bu backupların tüm sharepoint serverlarda aynı anda alındığına emin olmakta fayda var. Farklı statelerde alınırsa ileride sıkıntı doğurabilir.
Şaka ile karışık oldu biraz ama ciddi bir felaket senaryonuz olsun mutlaka. Yukarıda yazdıklarımın hepsini yapmaya elbette gerek yok. Bir sorun olduğunda, sunucuları rahatlıkla eski halini geri döndürebilirim diyorsanız service pack geçin. Yoksa service packsiz de sisteminiz çalışmaya devam edecektir.
- Her türlü riski göze alıp buraya geldiğinize göre işlemlere devam edebiliriz. Microsoft her türlü ortamda service pack geçiş işlemini test etmiştir şimdiye kadar. Ama %80-90 olasılıkla tüm windows ve security updatelerin yapıldığı serverlarda bunu test etmiştir diye düşünebiliriz. Bu yüzden Serverlara son windows ve security updateleri geçmeyi ciddi olarak düşünün. Kesinlikle yapın demiyorum, ama kendinize güveniyorsanız yapın diyorum
Bu arada SQL e SP geçmemişseniz, bu updatelerin arasında bulunan SQL Service Pack 1 i yüklememeye dikkat edin. İki Service Packi aynı anda yüklemeyin, sorun çıkarsa hangisinden dolayı olduğunu anlayamazsınız.
- Security ve Windows updateleri yaptıysanız serverları mutlaka restart edin. Yapmadıysanız bu adımı geçebilirsiniz.
-
Sıra
Service Pack 1 ve Microsoft tarafından mutlaka beraber kurulması önerilen June 2011 Cumulative update i kurmaya geldi.
- Bu kurulum için aşağıdaki şekilde bir tablo tutun. Bu tablo ile hangi servera hangi işlemlerin yapıldığını hatırlayabilirsiniz. Bir servera kurulmayan veya hata oluşan bir setupı, diğer serverlara da kurmamak gerekli. Yoksa upgrade işlemi, versiyon uyumsuzluğundan dolayı başlamaz.
- Service Pack 1 ve June 2011 Cumulative update i için kurulum sırası ve kurulması gereken dosyalar aşağıdaki listede belirtilmiştir. June 2011 Cumulative updateini SP sonrası da kurabilirsiniz. Beraber kurmak da mümkün. Binarylerindeki versiyonlar farklı olduğu için, sınırlarınızı zorlayıp, June 2011 CU yu geçip, üzerine SP kurulumu da yapabilirsiniz dilerseniz
- Listedeki Dosya Yerine indirdiğiniz kurulum dosyalarının pathini, Package alanına da Bu dosyaların ismini yazabilirsiniz. Kurulum yaparken hız kazandırdığını göreceksiniz.
- Çok önemli ve internette dolaşan sorulardan biri de : Sharepoint Foundation 2010 ve Sharepoint Server 2010 SP1 ve CU yu kurmam gerekir mi şeklinde. Evet ikisinin de kurulumlarını yapmanız gerekiyor. İlk önce Foundation sonrasında Server kurulumlarını geçmek gerekiyor. Foundation, Sharepointin Core özelliklerini güncelliyor. Server kurulumu ile de geri kalan featurelar için güncelleme yapılıyor.
-
İşlem sırasında gerekli olan setup dosyalarını aşağıda belirttim.
June 2011 CU kurulumu yapmayacaksanız indirmenize gerek yok. Yine Language Pack kurulumu yapmamışsanız bunu indirmeye ve kurmaya gerek yok.
- Sharepoint Foundation 2010 SP1
- Sharepoint Server 2010 SP1
- Sharepoint Foundation 2010 SP1 Language Pack
- Sharepoint Server 2010 SP Language Pack
- Sharepoint Foundation CU June 2011
- Sharepoint Server CU June 2011
-
Kurulum dosyalarını aşağıdaki siteden indirebilirsiniz. Yine bu site üzerinden iki ayda bir yayınlana
Cumulative Updateleri de takip etmeniz mümkündür.
http://technet.microsoft.com/tr-tr/sharepoint/ff800847.aspx
- Yazının en başında da bahsettiğim gibi aşağıdaki listeden 5. 11. ve 17. adımlarda hata alacaksınız (Turkish Language Pack geçecekseniz). Bu sizin sisteminiz ile ilgili değil, kurulum dosyasında olan bir hata sebebiyle. Ama foundation language pack’i sorunsuz yüklendiği için çok fazla önemli değil. Çünkü core olan sharepoint featurelarının dil paketini yapmış olduğunuz.
- Kurulumunuza Central Administration servisinin aktif olduğu application sunucusundan başlayın. Birden fazla application sunucunuz varsa, ilk CA nin aktif olduğu application sunucusu, sonrasında diğer application serverlara update işlemini yapın. Application serverlarınızda kurulumları bitirdikten sonra sırasıyla Front-End serverlarınıza kurulum yapabilirsiniz. İşlemler sırasında sadece üzerinde uğraşılan server kesintiye uğramaktadır. Bu yüzden Load Balance varsa bunu kapatıp tek bir front-end e yönlendirin. Diğer front-end kurulumları tamamlandıktan sonra, kurulumu yapılmış olan bir front-ende yönlendirme yapıp bu servera da kurulumu yapın. Bu sayede down-time önemli ölçüde azalmış olacaktır.
-
Hazırsanız aşağıdaki tablodaki alanları kendi sisteminize göre doldurun.
Örnek işlem listesi ;
Bu tabloda bir application ve iki tane de front-end sunucunuzun olduğu varsayılmıştır. Listeyi kendi sunucu listenize göre güncelleyin.
| Sıra |
Server |
Package |
Açıklama |
Dosya Yeri |
Durum |
| 1 |
Application Sunucusu |
sharepointfoundation2010sp1-kb2460058-x64-fullfile-en-us |
Sharepoint Foundation 2010 SP1 |
|
|
| 2 |
Application Sunucusu |
spflanguagepack2010sp1-kb2460059-x64-fullfile-tr-tr |
Sharepoint Foundation 2010 SP1 Language Pack |
|
|
| 3 |
Application Sunucusu |
435078_intl_x64_zip |
Sharepoint Foundation CU June 2011 |
|
|
| 4 |
Application Sunucusu |
officeserver2010sp1-kb2460045-x64-fullfile-en-us |
Sharepoint Server 2010 SP1 |
|
|
| 5 |
Application Sunucusu |
serverlanguagepack2010sp1-kb2460056-x64-fullfile-tr-tr |
Sharepoint Server 2010 SP1 Language Pack |
|
Hata Alırsanız kurulum yapmak için uğraşmayın. Diğer adımdan devam edin |
| 6 |
Application Sunucusu |
435088_intl_x64_zip |
Sharepoint Server CU June 2011 |
|
|
| 7 |
Front-End Sunucusu 1 |
sharepointfoundation2010sp1-kb2460058-x64-fullfile-en-us |
Sharepoint Foundation 2010 SP1 |
|
|
| 8 |
Front-End Sunucusu 1 |
spflanguagepack2010sp1-kb2460059-x64-fullfile-tr-tr |
Sharepoint Foundation 2010 SP1 Language Pack |
|
|
| 9 |
Front-End Sunucusu 1 |
435078_intl_x64_zip |
Sharepoint Foundation CU June 2011 |
|
|
| 10 |
Front-End Sunucusu 1 |
officeserver2010sp1-kb2460045-x64-fullfile-en-us |
Sharepoint Server 2010 SP1 |
|
|
| 11 |
Front-End Sunucusu 1 |
serverlanguagepack2010sp1-kb2460056-x64-fullfile-tr-tr |
Sharepoint Server 2010 SP1 Language Pack |
|
Hata Alırsanız kurulum yapmak için uğraşmayın. Diğer adımdan devam edin |
| 12 |
Front-End Sunucusu 1 |
435088_intl_x64_zip |
Sharepoint Server CU June 2011 |
|
|
| 13 |
Front-End Sunucusu 2 |
sharepointfoundation2010sp1-kb2460058-x64-fullfile-en-us |
Sharepoint Foundation 2010 SP1 |
|
|
| 14 |
Front-End Sunucusu 2 |
spflanguagepack2010sp1-kb2460059-x64-fullfile-tr-tr |
Sharepoint Foundation 2010 SP1 Language Pack |
|
|
| 15 |
Front-End Sunucusu 2 |
435078_intl_x64_zip |
Sharepoint Foundation CU June 2011 |
|
|
| 16 |
Front-End Sunucusu 2 |
officeserver2010sp1-kb2460045-x64-fullfile-en-us |
Sharepoint Server 2010 SP1 |
|
|
| 17 |
Front-End Sunucusu 2 |
serverlanguagepack2010sp1-kb2460056-x64-fullfile-tr-tr |
Sharepoint Server 2010 SP1 Language Pack |
|
Hata Alırsanız kurulum yapmak için uğraşmayın. Diğer adımdan devam edin |
| 18 |
Front-End Sunucusu 2 |
435088_intl_x64_zip |
Sharepoint Server CU June 2011 |
|
|
-
Sisteminiz için oluşturduğunuz yukarıdaki tabloya göre, kurulumlarınızı sırasıyla gerçekleştirin. Kurulumları yaparken bazı sunucularda restart isteklerini görebilirsiniz. Bu durumlarda sunucuyu restart etminizi öneririm. Kurulumları yaparken
Central Administration -> Upgrade and Migration -> Check product and patch installation status den hangi serverlara ne kurulduğunu, hangi serverlara neyin kurulması gerektiğini takip edebilirsiniz. Tüm kurulumların sonrasında bu listede
Missing/required diye bir şeyin kalmaması gerekiyor.

- Kurulumlar tamamlandıktan sonra, tüm serverları sırasıyla restart edin.
-
Sonrasında ise
PSConfig ile upgrade işlemini başlatmamız gerekiyor.
- Bu komutu yine Central Administrationın kurulu olduğu Application sunucundan başlayarak, diğer application sunucular ve en son olarak da front-end sunucularda çalıştırıyoruz.
- Komutu command prompt üzerinden %program files%/Common Files/Microsoft Shared/Web Server Extensions/14/bin klasöründe çalıştırabilirsiniz.
- Komut : psconfig -cmd upgrade -inplace b2b -wait
- İlk olarak çalıştırdığımızda işlem normalden biraz uzun sürecektir. İlk çalıştırmada, binary dosyalarının değiştirilip yenilerinin eklenmesinin yanında, DB Schemasını yeniden düzenliyor. Diğer sunucularda çalıştırdığınızda sürenin kısaldığını göreceksiniz.
- Upgrade işlemi tamamlandığında, ULS loglarının bulunduğu klasöre işlem ile ilgili log dosyaları bıracaktır. Eğer hata oluşmuşsa dosyaların sonunda -error textini görebilirsiniz. Upgrade işlemini etkilemeyen hatalar olursa Completed with errors diye bir sonuç görebilirsiniz. Hatalara bakıp, önem derecesine göre aksiyon almayıp diğer serverlarda bu komutu çalıştırabilirsiniz. Application sunucularda şu feature yok, bu solution yüklenmemiş diye hatalar olabilir. Ama bunlar, upgradei etkileyen hatalar değildir.
-
Bu sırada yine
Central Administration -> Update and Migration -> Check upgrade status yolu ile varsa hataları görebilir. Upgrade işleminin durumunu kontrol edebilirsiniz.

- Tüm serverlarda bu işlem tamamlandıktan sonra yine hepsini restart etmemiz gerekiyor.
-
Şimdiden geçmiş olsun diliyorum

ama emin olmak için sharepoint versiyonunu kontrol edelim. Bu işlemi;
- SQL server üzerinden, Select * from Versions ile,
- Central Administration -> System Settings -> Servers in Farm yoluna gidip Configuration Database version alanındaki rakamlara bakarak yapabilirsiniz.
- Sadece yukarıdaki kurulumları yaptıysanız beklenen versiyon numaranız 14.0.6106.5002 olacaktır.
- Evet işlemler tamamlandı. Sadece bu kadardı
Biraz daha vaktiniz varsa ve August 2011 CU yu geçmek isterseniz yine yukarıdaki sıra ve yöntem ile kurulumu yapabilirsiniz. Ağustos 2011 CU sonucunda versiyonunuzun 14.0.6109.5002 olması gerekiyor.
Notlar :
- Cumulative Updatelerde Language Packler paketin içine gömülü gelmektedir. Dosya boyutlarında da görülebilir bu.
- Sharepointe Active Directoryden Picture Import ediyorsanız, Ekim 2011 CU yu geçmeyin.
-
Aralık 2011 CU yeni çıktı. Bunu geçmek için de biraz bekleyin derim. Bakalım problem vs çıkacak mı insanlarda.
!!! Uyarı : Yukarıda yazılanlar tamamen yol, yordam ve fikir vermek amaçlıdır. Emin değilseniz, bu işlemleri bir danışman eşliğinde yapmanız faydalı olacaktır. !!!
Tags: August 2011 CU, CU, Cumulative Update, June 2011 CU, Language Pack, Migration, Patch, Patch Installation, PSConfig, Service Pack, Service Pack 1, Service Pack 1 Language Pack, Sharepoint, Sharepoint 2010, Sharepoint Foundation 2010, Sharepoint Server 2010, Upgrade
Posted in Bilgisayar, Sharepoint | No Comments »
Eylül 18th, 2011
Bu sorun genellikle, birden fazla front-end serverınızın olması durumunda karşınıza çıkar. Job’ı deploy ettiğinizde temelde tüm front-end ve belki (Job’ı SPServiceJobDefinition sınıfından türettiyseniz) tüm application serverlarda çalışması beklenir. Bu bazen sıkıntılara sebep verebilir.
Aynı job’ın sadece tek server üzerinde çalışmasını istiyorsanız,
Job’ı tanımlarken kullandığınız SPJobLockType‘ın tipini SPJobLockType.Job olarak setlemeniz yeterli olacaktır. Bu bir job’ın birden fazla server tarafından çalıştırılmasını engeller.
Tags: Job, Sharepoint, Sharepoint 2010, SPJobLockType, SPJobLockType.Job, timer, Timer Job, timerjob
Posted in Sharepoint | 2 Comments »
Mayıs 3rd, 2011
Biztalk Adminleri size soruyorum, aşağıdaki ekranı web üzerinden görseniz ne hissedersiniz?

Evet ben de öyle düşünmüştüm
Kurulum, indirme dahil, 3 dakika kadar sürüyor. Genelde Next ve Yes butonlarına tıklamak ile uğraşıyorsunuz sadece. Ondan sonra aşağıdaki linkte detaylarını bulabileceğiniz güzelliklere kavuşuyorsunuz. Geç kalmadan deneyin derim.
http://www.biztalk360.com
Uygulamanın sistem gereksinimleri ve dikkat edilmesi gerekenler aşağıdaki gibi;
System Requirement
- Windows XP SP3, Vista, 7, 2003 R2, 2008, 2008 R2
- BizTalk : 2006, 2006 R2, 2009, 2010
- SQL Server 2005, 2008, 2008 R2 (Including Express)
- IIS: 5.0, 6.0, 7.0, 7.5
Important: Installation Instruction
Please make sure the IIS application pool account you are going to use during installation is part of
- BizTalk Server Administrators Group
- SSO Administrators Group
- IIS_IUSRS group, and
In addition SELECT permission need to be granted to BizTalk Admin Role for few tables in BizTalkMgmtDb using the below script
GRANT SELECT ON dbo.adm_OtherDatabases TO BTS_ADMIN_USERS
GRANT SELECT ON dbo.adm_Server2HostMapping TO BTS_ADMIN_USERS
GRANT SELECT ON dbo.adm_ServiceClass TO BTS_ADMIN_USERS
GRANT SELECT ON dbo.BizTalkDbVersion TO BTS_ADMIN_USERS
Tags: BizTalk, Biztalk 2009, BizTalk 360, BizTalk Administration, Biztalk Administration Console, BizTalk Server, Biztalk Server 2010
Posted in BizTalk | No Comments »
Nisan 28th, 2011
Öncelikle elinizde http://jena.sourceforge.net/downloads.html adresinden indirilmiş olan jena-2.6.4.jar (Farklı bir versiyon olabilir) dosyasının olduğunu varsayıyorum. Bu makaleyi yazdığım sırada Jena’nın .NeT versiyonunu linki kırık durumdaydı. Bu yüzden farklı bir yol izlemek zorunda kaldım.
Daha sonra aşağıdaki linkten, jar ve java dosyalarını .net e çevirmek için kullanılan güzel bir uygulama indiriyoruz bilgisayarımıza. IKVM.NET
Link : http://www.ikvm.net/download.html
Bu iki uygulamayı zipden çıkardıktan sonra, ikvm klasöründeki \ikvmbin-0.46.0.1\bin klasörüne Jar dosyasını kopyalıyoruz. Bu işlem işimizi biraz kolaylaştırmak içindi
Sonrasında Command Prompt u açıp, ikvmbin-0.46.0.1\bin klasörüne gidiyoruz. Burada aşağıdaki komutu çalıştırıyoruz.
ikvmc -target:library jena-2.6.4.jar

Program aşağıdaki gibi jar dosyasını dll e çevirecektir. Bu komut sonrasında jena-2.6.4.dll dosyasını elde ediyoruz. Bu dosyayı istediğimiz bir .net projesine referans olarak ekleyip kullanabiliriz.

Söylemeden geçmeyeyim, bu işlem ile javada yazılmış olan tüm uygulamaları dll e çevirebili ve .net projelerinde kullanabilirsiniz.
Tags: .NeT, .NeT 2010, Çevrim, jar to dll, java, Jena.NeT
Posted in .NeT 2008, Yazılım | 2 Comments »
Mart 22nd, 2011
XML dosyalarından XSD şemaları üretmek istediğinizde, Command Promptan, xsd.exe (XML Schema Definition Tool) uygulamasını kullanabilirsiniz. Bunun ile ilgili bir yazı yazmıştım yanlış hatırlamıyorsam. Fakat dinamik olarak şemalar üretmek istediğinizde veya uygulamanıza bu şemaları ürettirmek istediğinizde cmd den komut yazıp, xsd.exe yi kullanmanız uygun olmayacaktır. Bunun yerine aşağıdaki metodu kullanabilirsiniz.
private void GenerateSchema(string filePath)
{
var reader = XmlReader.Create(filePath);
var schema = new XmlSchemaInference();
var schemaSet = schema.InferSchema(reader);
TextWriter writeFile = new StreamWriter("c:\\schema.xsd");
foreach (XmlSchema s in schemaSet.Schemas())
{
s.Write(writeFile);
}
writeFile.Close();
}
Tags: .NeT, c#, cmd, cmd.exe, Generate Schema, Schema Generator, VS, vs.net, XSD, xsd.exe
Posted in .NeT 2008, BizTalk, Yazılım | No Comments »
Mart 6th, 2011
Basit olarak aşağıdaki şekilde bu hatayı çözebilirsiniz.
SSL Webservisinizi çağırmadan önce BypassCertificateError metodunu çağırın. Bu metod ile sertifika hatasını geçiştirebilirsiniz.
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
public static void BypassCertificateError()
{
ServicePointManager.ServerCertificateValidationCallback +=
delegate(
Object sender1,
X509Certificate certificate,
X509Chain chain,
SslPolicyErrors sslPolicyErrors)
{
return true;
};
}
Tags: ByPass, Error, MOSS, MOSS 2010, Sharepoint, Sharepoint Error, SSL
Posted in Sharepoint, Yazılım | 2 Comments »
Mart 4th, 2011
Hazırladığınız uygulamada outlooku kullanarak mail göndermek istiyorsanız öncelikle “Microsoft Outlook 14.0 Object Library” i referans olarak eklemeniz gerekmektedir. 14.0 bilgisayarınızda kurulmuş olan office versiyonudur. Bu rakam değişiklik gösterebilir.

Daha sonra usinglerimize aşağıdaki satırı ilave ediyoruz. Böylece uzun uzun namespaceleri yazmamıza gerek kalmadan Outlook diyerek tüm metodları kullanabiliriz.
using Outlook = Microsoft.Office.Interop.Outlook;
Daha sonra aşağıdaki basit olarak hazırlanmış olan metodu kullanıp şekillendirerek mail gönderimi yaptırabilirsiniz.
private void SendOutlookMail()
{
try
{
Outlook.Application oApp = new Outlook.Application();
Outlook.MailItem oMsg = (Outlook.MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);
oMsg.To = "To Mail Adresleri";
oMsg.CC = "CC deki Mail Adresleri";
oMsg.BCC = "BCC deki Mail Adresleri";
oMsg.Recipients.ResolveAll();
oMsg.Subject = "Mailin Subjecti";
oMsg.Body = "Mailin İçeriği";
//Aşağıdaki satırları attachment göndermek istiyorsanız kullanabilirsiniz. İstemiyorsanız bunlara gerek yok
String sSource = "C:\\xyz.xlsx";
String sDisplayName = "Görünen Dosya İsmi";
int iPosition = (int)oMsg.Body.Length + 1;
int iAttachType = (int)Outlook.OlAttachmentType.olByValue;
Outlook.Attachment oAttach = oMsg.Attachments.Add(sSource, iAttachType, iPosition, sDisplayName);
//Mail gönderilmeden önce kullanıcıya değişiklik yapmak için imkan tanınıyor
oMsg.Display(true);
oAttach = null;
oMsg = null;
oApp = null;
}
catch (Exception e)
{
MessageBox.Show("Hata Oluştu", "Hata", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
Tags: .NeT, .NeT 2010, c#, Interop, Mail Gönderme, Outlook, SendMail, vs.net
Posted in .NeT 2008, Sistem, Yazılım | 2 Comments »
Mart 4th, 2011
Çalışan uygulamanın, exesinin bulunduğu klasörü aşağıdaki şekilde bulabilirsiniz.
using System.IO;
using System.Windows.Forms;
string appPath = Path.GetDirectoryName(Application.ExecutablePath);
Tags: .NeT, .NeT 2010, Application Path, c#, Executable Path, vs.net, Work DIR
Posted in .NeT 2008, Yazılım | No Comments »
Mart 4th, 2011
Bir datatable’ın Column.DataType propertysini aşağıdaki gibi belirleyebilirsiniz.
String
DataColumn colString = new DataColumn(“StringCol”);
colString.DataType = System.Type.GetType(“System.String”);
myTable.Columns.Add(colString);
Int32
DataColumn colInt32 = new DataColumn(“Int32Col”);
colInt32.DataType = System.Type.GetType(“System.Int32″);
myTable.Columns.Add(colInt32);
Boolean
DataColumn colBoolean = new DataColumn(“BooleanCol”);
colBoolean.DataType = System.Type.GetType(“System.Boolean”);
myTable.Columns.Add(colBoolean);
TimeSpan
DataColumn colTimeSpan = new DataColumn(“TimeSpanCol”);
colTimeSpan.DataType = System.Type.GetType(“System.TimeSpan”);
myTable.Columns.Add(colTimeSpan);
DateTime
DataColumn colDateTime = new DataColumn(“DateTimeCol”);
colDateTime.DataType = System.Type.GetType(“System.DateTime”);
myTable.Columns.Add(colDateTime);
Decimal
DataColumn colDecimal = new DataColumn(“DecimalCol”);
colDecimal.DataType = System.Type.GetType(“System.Decimal”);
myTable.Columns.Add(colDecimal);
Tags: .NeT, .NeT 2010, Column, Datatable, DataType, vs.net
Posted in .NeT 2008, Yazılım | No Comments »
Şubat 10th, 2011
Basit olarak Farmlar arası Service Application Paylaşımı hakkında bilgi vermeye çalışacağım. Ne gerek var, ben technetten okurum diyorsanız buyurun http://technet.microsoft.com/en-us/library/ff621100.aspx
Edit : Pek basit ve kısa olmadı, yani ben bu kadar uzayabileceğini düşünmemiştim…
Ama technette olmayan, basit hatalar ve çözümlerinden de bahsedecem.
Farmlar arasında paylaşımını yapabileceğiniz Service Application’lar aşağıdakilerdir.
- Business Data Connectivity
- Managed Metadata
- User Profile
- Search
- Secure Store
- Web Analytics
Tanımlar
A Farmı : Paylaşımı yapacak olan Farm – Publisher Farm
B Farmı : Paylaşımdan yararlanacak olan Farm – Consumer Farm |
Basit Olarak Yapılması Gerekenler
1. Farmlar arasında Trust Sağlamak
Exchange trust certificates between the farms ile ilgili Technet linki : http://technet.microsoft.com/en-us/library/ee704552.aspx
Bu işlem için A farmından Root Certificate, B farmından Root ve STS Certificate larını almamız gerekecek. Sertifikaları Central Administration ı kullanarak da alabiliriz. Ama bence bununla uğraşmayın. Aşağıdaki komutları satır satır Sharepoint Management Shell e yapıştırıp, çalıştırın. Bunun sonucunda C dizininde sertifikaların oluştuğunu göreceksiniz.
A Farmı (Servisi Share edecek olan Farm):
Root Certificate
$rootCert = (Get-SPCertificateAuthority).RootCertificate
$rootCert.Export(“Cert”) | Set-Content C:\PublishingFarmRoot.cer -Encoding byte
B Farmı (Servisi kullanacak olan Farm):
Root Certificate
$rootCert = (Get-SPCertificateAuthority).RootCertificate
$rootCert.Export(“Cert”) | Set-Content C:\ConsumingFarmRoot.cer -Encoding byte
STS Certificate
$stsCert = (Get-SPSecurityTokenServiceConfig).LocalLoginProvider.SigningCertificate
$stsCert.Export(“Cert”) | Set-Content C:\ConsumingFarmSTS.cer -Encoding byte
Sertifikalarımızı oluşturduktan sonra B Farmının sertifikalarını A Serverına, A Farmının sertifikasını ise B Serverına taşıyoruz. Daha sonra yine aşağıdaki komutlar ile bu sertifikaları import ediyoruz. Sertifikaların isimlerini değiştirmediyseniz ve kopyalanan sertifikaları yine C:\ dizinine koyduysanız aşağıdaki komutlarda herhangi bir değişiklik yapmadan sertifikaları import edebilirsiniz.
A Farmı (Servisi Share edecek olan Farm):
Root Certificate
$trustCert = Get-PfxCertificate C:\ConsumingFarmRoot.cer
New-SPTrustedRootAuthority ConsumingFarm -Certificate $trustCert
STS Certificate
$stsCert = Get-PfxCertificate c:\ConsumingFarmSTS.cer
New-SPTrustedServiceTokenIssuer ConsumingFarm -Certificate $stsCert
B Farmı (Servisi kullanacak olan Farm):
Root Certificate
$trustCert = Get-PfxCertificate C:\PublishingFarmRoot.cer
New-SPTrustedRootAuthority PublishingFarm -Certificate $trustCert
Trust işlemini sağlamak bu kadar. İlk başlarda biraz göz korkutabilir fakat görüldüğü kadar zor değil. Burada dikkat etmeniz gereken sadece Hangi sertifikanın Publish veya Consumer Farmlardan export edildiği ve/veya import edildiği. Geri kalan işlemler copy/paste
2. Service Application’ı Yayınlamak
On the publishing farm, publish the service application ile ilgili Technet linki : http://technet.microsoft.com/en-us/library/ee704545.aspx
Bu adımı da yine Sharepoint Management Shell kullanarak yapabilirsiniz. Ben Central Administration dan yapmanızı öneririm. Service Application’ı çok basit bir şekilde publish ediyoruz.
Central Administration -> Application Management -> Manage Service Applications yolunu izleyip, yayınlamak istediğimiz servisi seçiyoruz ve ribbon kısmındaki Publish butonuna tıklıyoruz.

Karşımıza çıkan ekranda, Publish to other farms alanının işaretli olduğuna dikkat ediyoruz ve Published URL alanında yazan URI kopyaladığımızdan emin olduktan sonra OK butonu ile servisimizi publish ediyoruz.
3. Servisi Kullanacak Olan Farm’a Yetki Vermek
On the consuming farm, set the permission to the appropriate service applications ile ilgili Technet linki : http://technet.microsoft.com/en-us/library/ff700211.aspx
Bu işlem temel olarak çok basit. Yapmanız gereken sadece iki adet işlem var.
Servisi kullanacak olan B Farmı üzerinde, Sharepoint Management Shelli çalıştırıp aşağıdaki komutu yazıyoruz.
Get-SPFarm | Select Id
Bu komutun çıktısı bize yetki verilecek olan Farmın ID sini verecek. Daha sonra Servis Paylaşımı yapacak olan A Farmında, Manage service applications kısmında Application Discovery and Load Balancing Service Application servisinini seçiyoruz. Yine Ribbon kısmından Permissions butonuna tıklıyoruz.

Bir önceki adımda elde ettiğimiz ID yi buraya yapıştırıyoruz.

Add butonu ile alt kısıma eklenen ID ye Full Control yetkisi verip OK butonuna tıklıyoruz.

4. Paylaşılan Service Bağlanma
On the consuming farm, connect to the remote service application ile ilgili Technet linki : http://technet.microsoft.com/en-us/library/ee704558.aspx
Tüm ayarlarımız tamamlandıktan sonra geriye paylaştığımız bu servise bağlanmak kaldı. Central Managementtan Manage service applications ekranına geliyoruz ve ribbonlardan Connect butonuna tıklıyoruz.

Buradan bağlanamak istediğimiz Servisi seçiyoruz. Karşımıza gelen ekranda Farm or Service Application address alanına 2. adımda bir kenara not aldığımız Published URL stringini yapıştırıyoruz ve OK butonu ile işlemi tamamlıyoruz. Published URL i bir kenara not etmediyseniz, 2. adımı tekrarlamanız durumunda yine aynı URI yi elde edebilirsiniz.

Yukarıdaki anlattığım adımlar ve ayarlardan sonra, bağlanmaya çalışırken, aşağıdaki gibi bir hata alabilirsiniz.
“Unable to connect to the specified address. Verify the URL you entered and contact the service administrator for more details.”
Tabi bu hata size anlamlı gelmeyecektir, zira çok genel bir hata. Bunun üzerine ULS loglarına (..\..\14\LOGS) bakacaksınız. Burada da muhtemelen aşağıdaki hatayı alacaksınız.
“SharePoint Foundation Claims Authentication fo1t Monitorable …inistration.Claims.SPClaimProviderManager.GetClaimProvidersForContext(Uri context, SPClaimProviderOperationOptions mode, IEnumerable`1 providerNames) at Microsoft.SharePoint.Administration.Claims.SPClaimProviderOperations.ClaimsForEntity(Uri context, SPClaimProviderOperationOptions mode, String[] providerNames, SPClaim entity) at Microsoft.SharePoint.IdentityModel.SPSecurityTokenService.AugmentClaimsIdentity(IClaimsIdentity identity, SPClaim identityClaim, RequestSecurityToken request) at Microsoft.SharePoint.IdentityModel.SPSecurityTokenService.GetOutputClaimsIdentity(IClaimsPrincipal principal, RequestSecurityToken request, Scope scope) at Microsoft.IdentityModel.SecurityTokenService.SecurityTokenService.Issue(IClaimsPrincipal principal, RequestSecurityToken request) … “
Buna göre yapmış olduğunuz hatalar aşağıdakilerden biri olabilir :
- Sertifika export ve import işlemleri sırasında hangi sertifikanın hangi serverdan alınıp, hangi servera yükleneceğini karıştırmış olabilirsiniz. Eğer sorunun bu olduğunu düşünüyorsanız, Central Administration -> Security -> Trust yolunu izleyip, her iki serverdaki yüklemiş olduğunuz sertifikaları silin. Burada bulunan local sertifikayı silmemeye özen gösterin.
Daha sonra birinci adımı tekrarlayın.
- Yukarıda anlattığım, üçüncü adımdaki aşamayı yanlış uygulamış olmak. Örneğin; Servisi kullanacak olan farmdaki Application Discovery and Load Balancing Service ine, servisi publish edecek olan farma yetki vermek. Tam tersi olması gerekiyordu.
- A ve B farmlarının kurulumlarının farklı domain userları ile yapılması. Bu ayrı bölgelerdeki farmları ayrı sorumlulara teslim etmek için gayet makul ve mantıklı bir işlem. Böyle bir durum ile karşı karşıya iseniz, Paylaşımı yapılan Service Application’da, diğer farmın userına da Full Control yetkisi vermeniz gerekecektir.
- A ve B Farmlarının bulunduğu serverlar birbirleri ile 32844 portundan konuşabilir durumda olmalıdırlar.
-
Muhtemelen yukarıdaki çoğu durum ile karşılaşmayacaksınız. Bu satıra kadar indiyseniz hiçbir şey derdinize çözüm olmamış demektir. Aslında çözümünüz çok basit birşey olabilir. Sharepoint’in temelinden gelen bir çözüm
IISRESET. Evet evet yanlış duymadınız, service bağlanmayı denemeden önce, yaptığınız değişikliklerden sonra, her iki servera da
mutlaka iisreset atın.
Bunlar da yardımcı olmadıysa, probleminizi paylaşırsanız sevinirim.
Tags: Central Administration, Certificate, Farm, IIS, Management Shell, MOSS, MOSS 2010, Permission, PowerShell, Service Application, Shared Application, Shared Service, SharedServices, Sharepoint, Sharepoint Error, Technet
Posted in Sharepoint | 4 Comments »