Tag Archive: Asp.Net


Asp.Net Pre-compiler 1.6

Microsoft Asp.Net’in en güzel özelliklerinden biri de yayınlanmadan önce derlenebiliyor olmasıdır. Bu sayede sitenizin kaynak kodları hem ftp’ye erişimi olan diğer kişilerce görüntülenemez/çalınamaz hem de web siteniz MSIL’ye derlendiğinden daha hızlı çalışır.

Yazdığımız bu program aslında Visual  Studio’da bulunan Build » Publish Web Site ile aynı görevi görüyor. Fakat taşınabilir ve çalışabilmesi için bilgisayarınızda sadece .Net Framework’ün yüklü olması yeterli.

Asp.Net Pre-compiler

Asp.Net Pre-compiler / Asp.Net Ön-derleyici

Programı kullanmak için öncelikle kodlamada kullandığınız Framework versiyonunu seçiyorsunuz. Sonra örneğin wwwroot klasörünüzde bulunan web sitenizin kaynak kodlarını source (kaynak) olarak gösteriyorsunuz. Destination (hedef) olarak ise herhangi bir boş klasör seçmeniz gerekir veya oluşturulabilecek bir klasör ismi de yazabiliyorsunuz. Open destination folder after compile (derleme sonunda hedef klasörü aç)’ı derleme esnasında da işaretleyebilirsiniz.

Compile (derle) butonuna bastıktan sonra kod bolluğunuza bağlı olarak 5-10 saniye içinde derleme tamamlanacaktır. Hedef klasörümüzde oluşan dosyalar bizim web sitemizin kök dizinine atmamız gereken dosyalardır. Bunların içindeki en önemlisi ise bin klasörü ve web.config dosyası. Bunlar sitenizin asp.net özel dosyalarının kodlarını içerir. O nedenle web sitenizin aspx kodlarında yapacağınız bir değişiklikten sonra derlemeden sonra oluşan bin klasörünü güncellemeniz yeterli olacaktır (diğer dosyaların güncellenmediğini varsayarsak).

Herhangi bir sorunuz olursa çekinmeden sorabilirsiniz.
Programı kaynak kodlarıyla birlikte şuradan indirebilirsiniz (VS2010 projesidir, exe için bin/Debug klasörüne bakın).

Asp.Net ile Türkçe e-posta adresi doğrulama

Asp.Net’te normal olarak bir metin kutusuna e-posta adresi doğrulaması eklerseniz (regularExpressioVlidator) hasanöşiğüı@hasangürsoy.com.tr gibi bir e-posta adresini doğrulamayı geçemez. Bu da tasarladığımız web sitesindeki iletişim formuna Türkçe domain sahiplerinin e-postalarını girmemesine neden olacaktır.

İletişim formu

Son tasarladığım bir web projesinde bu nokta sonunda beni araştırmaya sevk etti. Fakat pek de istediğim gibi birşey bulamadığımdan ifadeyi (expression) kendim yazdım. İfade şu şekilde:

\w*[\wçığöşü]+([-+.']\w+)*@\w*[\wçığöşü]+([-.]\w+)*\.\w+([-.]\w+)*

Bunu bir örnekte açıklayacak olursak formumuzda aşağıdaki kod yer almalı. Ayrıca bir de requiredFieldValidator koyuyorum ki e-posta kutucuğu boş da bırakılamasın.


<asp:TextBox ID="tEPosta" runat="server" CssClass="input" />
<asp:RequiredFieldValidator ID="rfvEPosta" runat="server" ControlToValidate="tEPosta" ErrorMessage="* zorunlu" Display="Dynamic" />
<asp:RegularExpressionValidator ID="revEPosta" runat="server" ControlToValidate="tEPosta" ErrorMessage="* geçersiz" Display="Dynamic" ValidationExpression="\w*[\wçığöşü]+([-+.']\w+)*@\w*[\wçığöşü]+([-.]\w+)*\.\w+([-.]\w+)*" />

Bu soruya stackoverflow‘da ve asp.net‘te yanıt aradım.

Today I got this error while I was coding a cms panel. I’ve researched for solution but there was nothing to do with most of them. Then I’ve looked up my code and I’ve realized that I haven’t closed my reader. After I added rdr.Close(); to my code block before closing using statement, problem was solved.

Also you can add rdr.Dispose(); In my code I delete previous uploaded files and sometimes it gives error when the file that needs to be deleted is already deleted. And this is the reason why command cannot be closed. So close and dispose the reader. Problemo solved :)

Error:
COM object that has been separated from its underlying RCW cannot be used.

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.Runtime.InteropServices.InvalidComObjectException: COM object that has been separated from its underlying RCW cannot be used.

Stack Trace:

[InvalidComObjectException: COM object that has been separated from its underlying RCW cannot be used.]
   System.Data.Common.IAccessor.ReleaseAccessor(IntPtr hAccessor, Int32& pcRefCount) +0
   System.Data.OleDb.RowBinding.Dispose() +86
   System.Data.OleDb.Bindings.Dispose() +30
   System.Data.OleDb.OleDbCommand.CloseInternalParameters() +18
   System.Data.OleDb.OleDbCommand.ResetConnection() +23
   System.Data.OleDb.OleDbCommand.Dispose(Boolean disposing) +27
   System.ComponentModel.Component.Dispose() +17
   Admin_addContent.LoadCategory() in z:\siteRoot\*.com\Admin\addContent.aspx.cs:223
   Admin_addContent.Page_Load(Object sender, EventArgs e) in z:\siteRoot\*.com\Admin\addContent.aspx.cs:29
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
   System.Web.UI.Control.OnLoad(EventArgs e) +99
   System.Web.UI.Control.LoadRecursive() +50
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627