windows 7 iis 7.5 hata kodu 0x8007000d

sitenin birinin bütün kodlarını aldım evdeki kendi makinemde çalıştırmaya çalışıyorum. ve dünden beri bu abuk hatayı alıyorum. hata çok açıklayıcı değil bi çok yerde web.config veya applicationhost.config dosyalarına ulaşım yok veya xml bozuk gibi açıklamalar yapılmış ama ben ne yaparsam yapim çözemezken en son rewrite tagı vardı web.config de onu silip bi kere daha çağırdım ve siteyi ne görim hata değişti. hah dedim çıktı sebebi. meğer iis’in url rewrite modülü eklenmemiş.

web platform installer kurdum ordanda url rewrite modülünü kurdum. bir iki ayar daha yaptıktan sonra lokalimde motosikletpazari.com çalışır oldu 🙂 şimdi gelsin yeni design yazalım…..

Lucene.net ve asp.net

lucene apache nin altında arama işlerinde kullanılan epey oturmuş bir proje. fakat java ile yazılmış bende bugün asp.net ile nasıl olurda kullanabilirim diye bakındım. ve basit bir asp.net örneği bulamadım. neyse diğer örneklerden kendime bişekil çalışan bişey çıkardım bu sefer godaddy shared hosting security exceptionları vermeye başladı ulan dedim noluyor. meğer lucene.net in te aşşalarında çağrılan iki satır kod ortamı karıştırırmış allah google amcamdan razı olsun birisi evvelden çözmüş o problemide ortadan kaldırdım.

sonra dedimki madem ben bulamadım başkasıda bulamayabilir bunu bi article edelim biyerlere koyalım. çok teferruatlı olmadı sonuçda teferruat olucak bişeyde yok en basit bi şekilde index nasıl create edilir nasıl arama yapılır ve sonuçlar gösterilir diye merak edenleriniz varsa bir aspx dosyasında işi bitirdim mis oldu.

Download luceneExample.zip – 196.7 KB

apostrof urlencode olmadı

normalde html de bi link oluştururken apostrofu encode etmeniz gerekmez ama ben <a href=’adres’>isim</a> şeklinde link oluşturuyordum tabi bu adresin içinde apostrof olma ihtimali hiç gelmezdi aklıma bi bakdım link bozuluyor. .net için HttpUtility.UrlEncode() fonksiyonunu kullanim dedim. link değişmedi meğersem bu konular kıl olabilirmiş. neyse çözüme gelelim hemen

linkStringi.Replace(“‘”,”%27″);

bu şekilde replace edince konu çözüldü.

hadi hayırlı tıraşlar.

TimeZoneInfo ve uygulamanın zamanı ayarı

Uzun zamandır asp.net kullanıyorum ve server saati hep bir problem olmuştur. şu işi web.config den ayarlicak bi sistem henüz bulamadım. şu işi biraz açıklıyim. ne zaman bi site yapsanız bi kullanıcı sisteminiz olur allahtan ona membershipprovider koydular uraştırmıo fazla. bide bu kullanıcıların sistemdeki işlemleri olur. en basit örnek bişeye yorum bırakmak olsun. server amerikada diyelim ve site türkçe. bu durumda kullanıcılarınızda genelde türkiyeden insanlar olucak. kullanıcı gelir login olur saat 12:00 dır ve 12:01 de yorumu yazar göndere basar fekat gönderim saati database e 03:01 diye insert edilir ve gösterilirkende öyle gösterilir. işte şu iş dediğim yer burası. bu durumda yapılması gereken ya insert sırasında zamanı türkiye saatine uygun çevirmek veya gösterimde kayıt edilmiş zamanı türkiye saatine çevirmek.

neyse bu gece yine aynı durumla karşılaştım. bakındım ve yine uygun bişey bulamadım ama .net 3.5 ile gelen TimeZoneInfo class ını buldum ağzını açan süper diyor ne olaki diye başladım bızdıklamaya. dalga basitce convert işlemi yapmayı sağlıyor. tabi kod örneğide bulamadım istanbul saatine çevirecek ondan yazim dedim burayada merak eden olursa diye

<%=TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime.Now, “GTB Standard Time”)%>

server daki şimdiki zamanı bizim saatimize çevirir. diğer tanımlı timezon idlerinide şöylece yazim.

Morocco Standard Time (GMT) Casablanca
GMT Standard Time (GMT) Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London
Greenwich Standard Time (GMT) Monrovia, Reykjavik
W. Europe Standard Time (GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna
Central Europe Standard Time (GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague
Romance Standard Time (GMT+01:00) Brussels, Copenhagen, Madrid, Paris
Central European Standard Time (GMT+01:00) Sarajevo, Skopje, Warsaw, Zagreb
W. Central Africa Standard Time (GMT+01:00) West Central Africa
Jordan Standard Time (GMT+02:00) Amman
GTB Standard Time (GMT+02:00) Athens, Bucharest, Istanbul
Middle East Standard Time (GMT+02:00) Beirut
Egypt Standard Time (GMT+02:00) Cairo
South Africa Standard Time (GMT+02:00) Harare, Pretoria
FLE Standard Time (GMT+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius
Israel Standard Time (GMT+02:00) Jerusalem
E. Europe Standard Time (GMT+02:00) Minsk
Namibia Standard Time (GMT+02:00) Windhoek
Arabic Standard Time (GMT+03:00) Baghdad
Arab Standard Time (GMT+03:00) Kuwait, Riyadh
Russian Standard Time (GMT+03:00) Moscow, St. Petersburg, Volgograd
E. Africa Standard Time (GMT+03:00) Nairobi
Georgian Standard Time (GMT+03:00) Tbilisi
Iran Standard Time (GMT+03:30) Tehran
Arabian Standard Time (GMT+04:00) Abu Dhabi, Muscat
Azerbaijan Standard Time (GMT+04:00) Baku
Caucasus Standard Time (GMT+04:00) Caucasus Standard Time
Armenian Standard Time (GMT+04:00) Yerevan
Afghanistan Standard Time (GMT+04:30) Kabul
Ekaterinburg Standard Time (GMT+05:00) Ekaterinburg
Pakistan Standard Time (GMT+05:00) Islamabad, Karachi
West Asia Standard Time (GMT+05:00) Tashkent
India Standard Time (GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi
Sri Lanka Standard Time (GMT+05:30) Sri Jayawardenepura
Nepal Standard Time (GMT+05:45) Kathmandu
N. Central Asia Standard Time (GMT+06:00) Almaty, Novosibirsk
Central Asia Standard Time (GMT+06:00) Astana, Dhaka
Myanmar Standard Time (GMT+06:30) Yangon (Rangoon)
SE Asia Standard Time (GMT+07:00) Bangkok, Hanoi, Jakarta
North Asia Standard Time (GMT+07:00) Krasnoyarsk
China Standard Time (GMT+08:00) Beijing, Chongqing, Hong Kong, Urumqi
North Asia East Standard Time (GMT+08:00) Irkutsk, Ulaan Bataar
Singapore Standard Time (GMT+08:00) Kuala Lumpur, Singapore
W. Australia Standard Time (GMT+08:00) Perth
Taipei Standard Time (GMT+08:00) Taipei
Tokyo Standard Time (GMT+09:00) Osaka, Sapporo, Tokyo
Korea Standard Time (GMT+09:00) Seoul
Yakutsk Standard Time (GMT+09:00) Yakutsk
Cen. Australia Standard Time (GMT+09:30) Adelaide
AUS Central Standard Time (GMT+09:30) Darwin
E. Australia Standard Time (GMT+10:00) Brisbane
AUS Eastern Standard Time (GMT+10:00) Canberra, Melbourne, Sydney
West Pacific Standard Time (GMT+10:00) Guam, Port Moresby
Tasmania Standard Time (GMT+10:00) Hobart
Vladivostok Standard Time (GMT+10:00) Vladivostok
Central Pacific Standard Time (GMT+11:00) Magadan, Solomon Is., New Caledonia
New Zealand Standard Time (GMT+12:00) Auckland, Wellington
Fiji Standard Time (GMT+12:00) Fiji, Kamchatka, Marshall Is.
Tonga Standard Time (GMT+13:00) Nuku’alofa
Azores Standard Time (GMT-01:00) Azores
Cape Verde Standard Time (GMT-01:00) Cape Verde Is.
Mid-Atlantic Standard Time (GMT-02:00) Mid-Atlantic
E. South America Standard Time (GMT-03:00) Brasilia
Argentina Standard Time (GMT-03:00) Buenos Aires
SA Eastern Standard Time (GMT-03:00) Georgetown
Greenland Standard Time (GMT-03:00) Greenland
Montevideo Standard Time (GMT-03:00) Montevideo
Newfoundland Standard Time (GMT-03:30) Newfoundland
Atlantic Standard Time (GMT-04:00) Atlantic Time (Canada)
SA Western Standard Time (GMT-04:00) La Paz
Central Brazilian Standard Time (GMT-04:00) Manaus
Pacific SA Standard Time (GMT-04:00) Santiago
Venezuela Standard Time (GMT-04:30) Caracas
SA Pacific Standard Time (GMT-05:00) Bogota, Lima, Quito, Rio Branco
Eastern Standard Time (GMT-05:00) Eastern Time (US & Canada)
US Eastern Standard Time (GMT-05:00) Indiana (East)
Central America Standard Time (GMT-06:00) Central America
Central Standard Time (GMT-06:00) Central Time (US & Canada)
Central Standard Time (Mexico) (GMT-06:00) Guadalajara, Mexico City, Monterrey – New
Mexico Standard Time (GMT-06:00) Guadalajara, Mexico City, Monterrey – Old
Canada Central Standard Time (GMT-06:00) Saskatchewan
US Mountain Standard Time (GMT-07:00) Arizona
Mountain Standard Time (Mexico) (GMT-07:00) Chihuahua, La Paz, Mazatlan – New
Mexico Standard Time 2 (GMT-07:00) Chihuahua, La Paz, Mazatlan – Old
Mountain Standard Time (GMT-07:00) Mountain Time (US & Canada)
Pacific Standard Time (GMT-08:00) Pacific Time (US & Canada)
Pacific Standard Time (Mexico) (GMT-08:00) Tijuana, Baja California
Alaskan Standard Time (GMT-09:00) Alaska
Hawaiian Standard Time (GMT-10:00) Hawaii
Samoa Standard Time (GMT-11:00) Midway Island, Samoa
Dateline Standard Time (GMT-12:00) International Date Line West

bu listeyi almak için örnek koduda koyalım timezoneinfo konusuda kapansın demi.

<table>
<%
foreach (var item in TimeZoneInfo.GetSystemTimeZones())
{
%>
<tr><td><%=item.Id %></td><td><%=item.DisplayName %></td></tr>
<%
}
%>
</table>

Linq ve Hibernate

uzun süredir duyduğum linq yu inceleme fırsatım oldu en sonunda ilk elden 🙂 genelde videolarda veya makalelerde görüyordum. olay özünde hibernate in görselleşmiş hali. sabahdan akşama ofisde hibernate xml leri ve pojolarıyla oynamakdan obje kusacam yakında ordan biliomki hibernate çok kolay değil.ve microsoft bu esnada piyasaya çıkıyor var olan orm yapısını yine şükela biçimde ambalajlıyor.

var olan asp.net projesine linq kabiliyeti nasıl kazandırılıyor:
1- projeye sağ tıklayıp “Add New Item” seçiliyor. çıkan ekranda da “LINQ to SQL Classes” seçiliyor örnek ekran görüntüsü

ve sadece bu adım var olan projeye bir dbml dosyası ekliyor.
2-sonraki adım dahada kolay hemen sağda duran server explorerdaki database’inizden açılan panele table ları sürükleyip bırakmak isimlerini istediğiniz gibi ayarlamak örnek görüntü

işte bu kadar classlar hazır koda gir yaz dio adam nereye ne koycan napacaksan 🙂

hemen kod örneğide verim screen shotdaki classları kullandım:
var p1 = (from p in db.Photos
where p.user_id == (Guid)Membership.GetUser().ProviderUserKey
orderby p.created
select p).First();

bu kod bize gidip photos tablosundan login olunulmuş user a ait fotoların ilkini getiriyor. çok tatlı olmuş çok. bu var keywordüde yeni c# 3 le gelio. compile time da tipi belirlenen değişken tanımlama yöntemi. eskiler bilir vb6 daki variant a benzemio bi satır aşşada p1=3; dersek compile da hatayı verio aynen.

asıl bomba hareketleri denemedim bu arada insan merak edio bu linq nanesi sqlite ile yada mysql ile ne derece anlaşabilio 🙂

linq yu denedikden sonra yine son zamanlarda asp.net dünyasında MVC muhabbetleri duyuyordum ona bakim dedim ilk elden deneme şansım olmadı ama symphony veya cakephp nin ambalajlanmışıda yolda henüz deploy edilebilir bi versiyonu yokmuş ama bu video öle dedi.

O site ne kullanıyor

bir sitenin hangi teknolojiyi kullandığı merak edilen bişey olabilir. ki sabah sabah “Olasilik Teorisi&Stokastik Pro” dersinin notlarını okurken insanın aklına böle şeyler gelmesi gayet doğal master gerçekten gereksiz zorlama olmaya başladı. her ne ise. last.fm açık bişeyler çalıodu. acaba dedim bu last.fm ne ile yazılmış. temiz bir web 2 görüntüsüne sahip sitemiz php ile yazılmış bakınız.

netcraftın bu servisi hoş oluyor. aslında sizde yazabilirsiniz ben bi ara yazmıştım böle bişey mantığı basit get yapınca head ile gelen server bilgilerinde yazıyor bu tip şeyler. asp.net ile yazılmışı. bende seneler sonra kontrol ettim o portsdb.org kapanmış neyse o kodda basitce header check nasıl yapılıo belli.

ASP.NET Sessionstate SQLServer

bakınca ne güzel bir başlık asp.net de sessionstate den bahsedecek bunuda mssql serverda tutmayı anlatacak. buraya kadar normal ama saatlerdir web.configle oynuom deli oldum her tarafda çalışan connectionstring çalışması gereken yerde saçma sapan hata veriyor. ve tamamen tecrübeyle sabit olan diğer argümanlarda bokluk vardır ile ilerlerken buldum 🙂

basit bir web.configde sessionstate ayarı örneği:
<sessionState mode="SQLServer"
sqlConnectionString="Data Source=.sqlexpress;Initial Catalog=tekliflerim;Integrated Security=SSPI"
allowCustomSqlDatabase="True"
cookieless="UseCookies"
timeout="21600" />

bu 2 hafta boyunca sessionumuzu yaşatmak için yazılmış basit bir config. hatalı olan şeyse allowCustomSqlDatabase deki True daydı. az evel true dan True ya çevirdim çalıştı önceden beri biliodum her tarafı case insensitive olan yani büyük küçük harf bağımsız çalışan windows alemi bunda heleki bunda true ile True da farklılık var diyip çatlıo şimdi kime kalay çekim 🙂

neyse web.config de ayar yaparken böle şeylere dikkat etmekde fayda var bu nane case sensitive. yani büyük küçük harf bağımlı.

Asp.Net DefaultButton DefaultFocus

bunlar çoğu zaman gereken hareketlerdir. bir site yüklendiğinde hemen bişeyler yazıp aramaya izin vermesi isteniyorsa. ilk adım yazı yazılacak textbox ın focus edilmesi gerekir. ikinci adımda burdan entera basınca form’un submit olması istenir. veya o sayfada herhangi bir buttona basılmış olması istenir. bu gibi hallerde yazılabilecek güzel bir kod parçacığı verelim:

Page.Form.DefaultFocus = txtSearchTerm.ClientID;
Page.Form.DefaultButton = LinkButton1.UniqueID;

ee hajı mascix biz bunu biliyorduk ne zikime yazıon bunu diyenler yazının devamını okusun.

konusu geçen propertyler masterpage ve usercontrollerden oluşan komplex bir sitede geçiyor. bu propertylerden önce masterpage e direk defaultfocus vermeyi denedim ama arkadaş onu yemedi sanırım bu usercontroldeki textbox ın idsini yakalayamadığı içindir. sonra bir ara enter tuşuyla default basılması istenen button kodunu bulmuşdum.

txtSearchTerm.Attributes.Add(“onKeyPress”, “javascript:if (event.keyCode == 13) __doPostBack(‘” + LinkButton1.UniqueID + “‘,”)”);

ve denemişdim güzel çalışıyordu fakat sonradan en yukardaki iki satırı bulunca ulan dedim bu javascriptli kod boka benzio öteki pek bi temiz bunu silemde kullanmayam dedim ve sildim sonra IE de mis gibi çalışan bu DefaultButton özelliğinin firefox da iplenmediğini fark ettim 🙂 evet görüldüğü üzere .net de herşeyi bilmek yetmiomuş bazen okumaya devam etmek gerekiomuş. bende kodumu şu şekilde değiştirdim.

txtSearchTerm.Attributes.Add(“onKeyPress”, “javascript:if (event.keyCode == 13) __doPostBack(‘” + LinkButton1.UniqueID + “‘,”)”);
Page.Form.DefaultFocus = txtSearchTerm.ClientID;
//note:bu yöntem firefox da çalışmadı 🙂
//Page.Form.DefaultButton = LinkButton1.UniqueID;

Godaddy Mysql Asp.Net SqlDataSource

lokalde geliştiripde server a atınca çalışan teknoloji istiyorum. ne dil kullanırsanız ne ortam olursa olsun ya versiyonu tutmaz ordan yatar ya konfigurasyonu farklıdır yada manyakdır çalışmaz 🙂 misal godaddy de bazı yerlerde mod_rewrite çalışır aynı makinede bazı yerlerde çalışmaz.

neyse mysql kullanıyorum bir uygulamada lokalde gridview ve sqldatasourcu çalışır duruma getirmişim update delete falan mis gibi çalışıyor attım hosta hata aynen:

Unable to find the requested .Net Framework Data Provider. It may not be installed.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.ArgumentException: Unable to find the requested .Net Framework Data Provider. It may not be installed.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

sebep machine.config de tanımlı olmayan mysql.data.dll imizin trust meseleleri çekip çalışamaması. bide dbfactory ile ilgili konuları var ama o konuları anlamadım. neyse bu gibi bir durum nasıl çözülür.

web.config’e gereken satırlar eklenir:
<system.data>
<DbProviderFactories>
<add name="MySQL Data Provider"
invariant="MySql.Data.MySqlClient"
description=".Net Framework Data Provider for MySQL"
type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=5.1.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
version numarasından çatlıyabillir kullandığınız dll in versiyonu ile değiştirin. ve bir mutlu son daha sqldatasource gridview ve mysql tatlı tatlı çalışmaya başlar o hatada kaybolur. efendim gökden 3 elma düşmüş …………….