"Error during serialization or deserialization using the JSON JavaScriptSerializer. The length of the string exceeds the value set on the maxJsonLength property." Hatasının çözümü:
Genelde Json'dan dönen değerin limiti ile ilgili bir hatadır.Default Değeri 4 MB olduğu için yukarıdaki hatayı verecektir,bu hatanın çözümü için web.config dosyamıza aşağıdaki kodu yazalım.
<configuration>
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="60000000"/>
</webServices>
</scripting>
</system.web.extensions>
</configuration>
Burada json'den dönen değerin uzunluğunu arttırmış olduk.
5 Mart 2013 Salı
6 Şubat 2013 Çarşamba
Index’lerin fragmentation değerlerini öğrenmek
İndexlerimizin fragmentation yani bozulan oranları öğrenmek için aşağıdaki kodu T-sql'de çalışıyoruz.
Use ademcinar
GO
SELECT
ps.object_id,
i.name as IndexName,
OBJECT_SCHEMA_NAME(ps.object_id) as ObjectSchemaName,
OBJECT_NAME (ps.object_id) as ObjectName,
ps.avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL , NULL, 'LIMITED') ps
INNER JOIN sys.indexes i ON i.object_id=ps.object_id and i.index_id=ps.index_id
WHERE avg_fragmentation_in_percent > 5 AND ps.index_id > 0
ORDER BY avg_fragmentation_in_percent desc
Çıkan sonuçta avg_fragmentation_in_percent değeri %30'dan büyük ise indexleri rebuild ile düzeltebiliriz.Eğer %30'dan küçük ise reorganize ile düzeltebiliriz.
Bir sonraki makalede indexrebuild ve reorganize işlemlerini anlatacağım
INSERT statement failed because data cannot be updated in a table with a columnstore index. Consider disabling the columnstore index before issuing the INSERT statement, then rebuilding the columnstore index after INSERT is complete
"INSERT statement failed because data cannot be updated in a table with a columnstore index. Consider disabling the columnstore index before issuing the INSERT statement, then rebuilding the columnstore index after INSERT is complete" Hata Çözümü
Bu Hata ColumStore İndex yapısını kullandığımız indexlerde karşımıza çıkar, sebebi ColumStore indexlerde insert,update ve delete işlemi yapmanıza izin vermez.insert yapıcağımızda ColumStore indeximizi disable yapıp insert yapabiliriz,insert işlemi bittikten sonra tekrar rebuild yapabiliriz. Aşağıdaki Örnekteki Gibi.
Çözümü ise;
--indexi disable ettik
alter index NCColumnStoreIndex-Test on dbo.Kisiler disable
Go
-- kayıt ekledik
insert dbo.Kisiler (ad,soyad) values('Adem','Çınar')
Go
--index tekrar aktif hale getirdik
alter index NCColumnStoreIndex-Test on dbo.Kisiler rebuild
Go
Bu Hata ColumStore İndex yapısını kullandığımız indexlerde karşımıza çıkar, sebebi ColumStore indexlerde insert,update ve delete işlemi yapmanıza izin vermez.insert yapıcağımızda ColumStore indeximizi disable yapıp insert yapabiliriz,insert işlemi bittikten sonra tekrar rebuild yapabiliriz. Aşağıdaki Örnekteki Gibi.
Çözümü ise;
--indexi disable ettik
alter index NCColumnStoreIndex-Test on dbo.Kisiler disable
Go
-- kayıt ekledik
insert dbo.Kisiler (ad,soyad) values('Adem','Çınar')
Go
--index tekrar aktif hale getirdik
alter index NCColumnStoreIndex-Test on dbo.Kisiler rebuild
Go
1 Şubat 2013 Cuma
Windows Phone İnternet Kontrolü
Windows Phone projelerimizde eğer İnternet üzerinden işlem yapacağımız zaman.İnternet kontrolünü mutlaka eklememiz gerek.Eklemediğimiz takdirde Store tarafından olumsuz yanıt alırız.
İnternet Kontrolü yapmak için aşağıdaki metodu ilk açılacak sayfamıza eklemeliyiz.
if (!NetworkInterface.GetIsNetworkAvailable())
{
İnternet Kontrolü yapmak için aşağıdaki metodu ilk açılacak sayfamıza eklemeliyiz.
if (!NetworkInterface.GetIsNetworkAvailable())
{
MessageBox.Show("İnternet Bağlantınızı Kontrol Ediniz...", "İnternet", MessageBoxButton.OK);
}
yukarıda GetIsNetworkAvailable metodunu çağırarak telefonda üzerinde İnternet olup olmadığını kontrol edip kullanıcıya uyarı verdik.
}
yukarıda GetIsNetworkAvailable metodunu çağırarak telefonda üzerinde İnternet olup olmadığını kontrol edip kullanıcıya uyarı verdik.
15 Ocak 2013 Salı
Asp.Net Url Routing Kullanımı
Bu yazımda Url Routing yapısının mimarisini ve kullanımı anlatacağım.Tabi Url routing'e geçmeden önce Query String'den biraz bahsedelim.Query string Framework 4.0'dan önce projelerimizin vazgeçilmez veri taşıma yöntemidir.
Örnek;
http://localhost:61802/?ID=30.11.2012
Şeklinde ID değişkenine değer yolluyorduk sonrada istediğimiz yerde değişkendeki değeri kullanabiliyoruz,Peki neden Url Routing kullanmalıyız;
6.Sıra geldi metodu çağırmaya,metodu uygulamamız start olduğunda çağıracağız yani Application_Start metodunu kullanacağız bu metod,Uygulamamız start olduğunda ilk bu metod çalışır.
Örnek;
http://localhost:61802/?ID=30.11.2012
Şeklinde ID değişkenine değer yolluyorduk sonrada istediğimiz yerde değişkendeki değeri kullanabiliyoruz,Peki neden Url Routing kullanmalıyız;
- Query String'ler sayfa aramasında indexleme işlemlerinde sorun çıkartması, Url Routing ise seo yapısı olduğu için arama motorlarında üst sıralarda, hızlı ve klasör bazlı indexleyebiliyor .
- Parametreler fazla oldukça işin içinden çıkılmaz hal alması. Url Routing'de belirli standartlarda yaptığımız için herhangi bir sorun çıkartmaması.
- Query String Url'leri Kullanıcı tarafından karışık bir görüntüsü olması.
Url Routing Kullanımı
Öncelikle;
- New Project > Web > Asp.Net Empty Web Application ve framework 4.0 projesi olmasına dikkat ediyoruz,çünkü Url Routing framework 4.0 ile beraber geldi.
- Projemizde Sağ Tıklıyoruz > Add > New Item > Global Application Class(Global.asax) seçiyoruz.
- Global.asax dosyasını açtıktan sonra;
- Referance olarak aşağıdaki System.Web.Routing ekliyoruz ;
6.Sıra geldi metodu çağırmaya,metodu uygulamamız start olduğunda çağıracağız yani Application_Start metodunu kullanacağız bu metod,Uygulamamız start olduğunda ilk bu metod çalışır.
7.Url Routing işlemlerini tanımladıktan sonra nasıl kullanıcağımıza bakalım;
Sayfa İçerisinde Kullanımı
1. ilk olarak query string gibi değer atama işlemi yapalım.
Yukarıda başlık değişkenine istediğimiz parametreyi atayabiliriz.burada dikkat etmemiz gereken nokta Türkçe karakterleri kullanmamalıyız.bunun için Türkçe karakterleri çeviren bir metoda ihtiyacınız olacak.
2.Atadığımız değerleri nasıl okuyacağımıza bakalım;
RouteData.Values metodunu kullanarak değişkene atadığımız değeri alırız.Bu şekilde istediğimiz kadar url aracılığı ile veri taşıyabiliriz.
14 Ocak 2013 Pazartesi
WITH (NOLOCK) Hayat Kurtarır :)
NOLOCK Sql Server'da tablolarımızın kilitlenmesini(deadlock) olmasını engeller,normal şartlarda tablodaki crud işlemlerinde, örnek: update sorgudan cevap dönene kadar tabloyu lock(deadlock) eder başka bir işlem yapmaya izin vermez. Lock ettiği için farklı bir sorgudan değer bir önceki işlem bitmeden değer döndürmez.Bu durum orta ölçekli projelerde hissedilmese de büyük projelerde başımızı belaya sokabilir.
Kullanımı;
select * from Customers WITH (NOLOCK)Kullanımı;
Tablo adından sonra "WITH (NOLOCK)" yazmamız yeterli olacaktır.fakat NOLOCK nerede kullanacağımız çok önemli buna çok dikkat etmeliyiz,eğer anlık işlemler çok ise NOLOCK kullanmanız bize avantajdan ziyade dezavantaja dönüşebilir.
Örnek verecek olursak E-ticaret sitesinden bir ürünü iki kişiye satma ihtimaliniz yüksek çünkü tabloyu lock etmediğiniz için birden çok kişi aynı ürünü satabiliriz.Tabi bu işlemleri "TRANSACTION" ile yapabilirseniz bir sıkıntı yaşamazsınız.
9 Ocak 2013 Çarşamba
EntitySet'i güncelleştirilemiyor çünkü bir DefiningQuery'si var ve öğesinde geçerli işlemi desteklemek için hiçbir üyesi mevcut değil.
"EntitySet'i güncelleştirilemiyor çünkü bir DefiningQuery'si var ve <ModificationFunctionMapping> öğesinde geçerli işlemi desteklemek için hiçbir <UpdateFunction> üyesi mevcut değil." Hatası ile karşılaştıysanız.
Çözümü:insert veya update yaptığınız tabloda primary key olmamasından dolayı böyle bir hata almaktadır.tabloya primary key eklerseniz düzelecektir.
Çözümü:insert veya update yaptığınız tabloda primary key olmamasından dolayı böyle bir hata almaktadır.tabloya primary key eklerseniz düzelecektir.
Kaydol:
Kayıtlar (Atom)