Skip to Content

Internet explorer 11 render problemi çözümü

Written on January 8, 2014 at 09:51, by

İnternet exploerer 11 ile birlikte major değişikliklere gitti bunlardan biriside user agent string değişikliği ie yıllardır kullandığı UA bilgisini değiştirince telerik gibi 3. parti yazılımlar browserin ie olup olmadığını anlayamıyor bu durumdada sayfa yanlış render edilip javascript ajax hatalarına sebep oluyor. Bu tarz problemleri meta tag kullanarak çözebiliyorduk ancak ie 11 de bu durumda ortadan kalktı. Diğer bir yol ise iis ten Response Header a browser versiyonu girip uyumluluk modunda çalıştırmak ancak buda işe yaramayacak.  Sorunun iki çözümü var birincisi .Net bu durumu framework 4.5 ile düzeltti ancak web uygulamanızın çalıştıgı sunucuda framework güncellemesi yapmanız gerek (.net 4.5 güncellemesi). Diğer bir çözüm ise uygulamanıza App_Browsers klasörü eklemek ve telerik tarafından yayınlanan browser dosyasını kullanmak bunu yaptıgınızda internet explorer telerik tarafından tanınıp ona göre render edilecek ve problem çözülecektir.

 
<browsers>
  <browser id="IE11" parentID="Mozilla">
    <identification>
      <userAgent match="Trident/(?'layoutVersion'[7-9]|0*[1-9]\d+)(\.\d+)?;(.*;)?\s*rv:(?'version'(?'major'\d+)(\.(?'minor'\d+)))" />
      <userAgent nonMatch="IEMobile" />
    </identification>
    <capture>
      <userAgent match="Trident/(?'layoutVersion'\d+)" />
    </capture>
    <capabilities>
      <capability name="browser"              value="IE" />
      <capability name="layoutEngine"         value="Trident" />
      <capability name="layoutEngineVersion"  value="${layoutVersion}" />
      <capability name="extra"                value="${extra}" />
      <capability name="isColor"              value="true" />
      <capability name="letters"              value="${letters}" />
      <capability name="majorversion"         value="${major}" />
      <capability name="minorversion"         value="${minor}" />
      <capability name="screenBitDepth"       value="8" />
      <capability name="type"                 value="IE${major}" />
      <capability name="version"              value="${version}" />
    </capabilities>
  </browser>
 
  <!-- Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11,0) like Gecko -->
  <browser id="IE110" parentID="IE11">
    <identification>
      <capability name="majorversion" match="11" />
    </identification>
 
    <capabilities>
      <capability name="ecmascriptversion"    value="3.0" />
      <capability name="jscriptversion"       value="5.6" />
      <capability name="javascript"           value="true" />
      <capability name="javascriptversion"    value="1.5" />
      <capability name="msdomversion"         value="${majorversion}.${minorversion}" />
      <capability name="w3cdomversion"        value="1.0" />
      <capability name="ExchangeOmaSupported" value="true" />
      <capability name="activexcontrols"      value="true" />
      <capability name="backgroundsounds"     value="true" />
      <capability name="cookies"              value="true" />
      <capability name="frames"               value="true" />
      <capability name="javaapplets"          value="true" />
      <capability name="supportsCallback"     value="true" />
      <capability name="supportsFileUpload"   value="true" />
      <capability name="supportsMultilineTextBoxDisplay" value="true" />
      <capability name="supportsMaintainScrollPositionOnPostback" value="true" />
      <capability name="supportsVCard"        value="true" />
      <capability name="supportsXmlHttp"      value="true" />
      <capability name="tables"               value="true" />
      <capability name="supportsAccessKeyAttribute"    value="true" />
      <capability name="tagwriter"            value="System.Web.UI.HtmlTextWriter" />
      <capability name="vbscript"             value="true" />
    </capabilities>
  </browser>
</browsers>

Konu ile ilgili detaylı bilgiyi burada bulabilirsiniz.

Browser dosyasını burdan indirebilirsiniz.

 

 

http://www.telerik.com/community/forums/aspnet-ajax/general-discussions/incorrectly-rendered-webpage-when-using-internet-explorer-11.aspx

Windows sunucuda .htaccess problemi çözümü

Written on August 8, 2013 at 09:33, by

.htaccess dosyası wordpress için bir config dosyasıdır. Örneğin url rewrite için yazdığınız kurallar bu dosyada tutulur. Windows sunucu üzerine wordpress kurma imkanınız var ancak IIS .htaccess dosyamızdaki ayarları tanımayacaktır not found, access denied gibi hatalar almanıza sebep olacaktır. IIS üzerine url re-write modülünü kurarak .htaccess dosyamızı web.config dosyasına çevirebiliriz.

Web platform installer

1- Sunucuya wordpressi kurmayı başardı iseniz :) yine aynı arayüz ( IIS > Management > Web platform installer ) ile “url rewrite” modülünü ekliyoruz.

2

2- IIS ten işlem yapılacak siteyi seçip url rewrite ikonuuna tıklıyoruz.
3
3- Import Rule diyerek .htaccess dosyamızı gösteriyoruz. xml view tabındaki kodu <system.webServer> tag leri arasına yapıştırıp ana dizine atıyoruz.

Örnek web.config dosyası:

 

Bu noktadan sonra http://www.serdardemir.net/?p=123 şeklinde olan url http://www.serdardemir.net/html-5-local-storage-ve-session-storage-kullanimi.html haline geliyor.

ASP.Net Master Pages Tips and Trick

Written on July 13, 2013 at 15:14, by

Master Type

1-Master Type direktifi  kullanarak FindControl() eziyetinden kurtuluyoruz.  Master page içerisinde Placeholder içerisindeki panel içinde bir label i bulmak için findcontrol ve cast işlemleri yapıyorduk.

Örnek (Msdn) Klasik yöntem

 
ContentPlaceHolder mpContentPlaceHolder;
TextBox mpTextBox;
mpContentPlaceHolder =
(ContentPlaceHolder)Master.FindControl("ContentPlaceHolder1");
if(mpContentPlaceHolder != null)
{
mpTextBox = (TextBox) mpContentPlaceHolder.FindControl("TextBox1");
if(mpTextBox != null)
{
mpTextBox.Text = "TextBox found!";
}
}

Şimdi buna benzer bir işlemi master type kullanarak yapalım

MasterPage Sayfamız:

string userName;
public string UserName
{
get { return userName; }
set { lblUserName.Text = value; }
}


Master page içeren sayfamız:

<%@ Page Title="" Language="C#" MasterPageFile="~/SiteMaster.Master" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="test1.WebForm1" %>

<%@ MasterType VirtualPath="~/SiteMaster.Master" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
</asp:Content>

*Bu noktadan sonra aşağıdaki gibi master page propertilerine direk erişim sağlayabiliryoruz.

Master.UserName = "serdardemir";

Ayni işlemi Master Type kullanmadan yapmak istersek (MasterPage classımıza cast işlemi yapıyoruz)

((SiteMaster)Master).UserName = "serdardemir";

 

Windows tarih / saat update işlemini daha sık yapma

Written on June 19, 2013 at 04:32, by

Uygulamalarda (Unix time )saniye değeri çokça kullanılan bir parametredir. Örneğin şifreleme,işlem süresi , otp vs. Windows time service belli periyotlarda (default 1 hafta) sistem zamanını update yapıyor Windows network time (NTP) fakat network problemleri yada yaşanan gecikmeler sonucu bir süre sonra sunucu daki Unix time ile evrensel unix time farklı olmaya başlıyor. Task Scheduler kullanarak bunu update periyotlarını daha sık hale getirebiliriz.

*Windows time servisin çalışıyor olması gerekli

time service

1-Task Scheduler açıyoruz.
2- Microsoft / Windows / Time Synchronization buluyoruz.
3- Create Task diyoruz.
4- Resimdeki gibi parametleri giryoruz ancak dikkat etmemiz gereken nokta run with highest privileges seçeneğini ve account kısmına Local Service seçiyoruz

1
5- Trigger kısmında günlük olarak ayarlıyoruz.
6- Action kısmında %windir%\system32\sc.exe , start w32time task_started ve %windir%\system32\w32tm.exe /resync parametresini giriyoruz .

2
7- Condition kısmında ise AC power seçeneğini işaretlemiyoruz.

Bu işlem sonunda sunucunuzun tarihi sekronize ve doğru bir şekilde güncellenecektir.