Koray Kırdinli

Yazılım ve İş Yaşamı Hakkında Paylaşımlar

Bat ile Scheduled Task Oluşturma

Merhabalar,

bat uzantılı dosyalar bildiğiniz gibi windows komutları çalıştırmamıza yarayan küçük programcıklardır. Bu örneğimizde işyerinde işime yarıyan bir scheduled task yani zamanlanmış görev  örneğini paylaşıyor olacağım.

Bir text dosyasına aşağıdaki scripti kopyalayıp uzantısını da .bat olarak kaydederseniz, dosyaya çift tıkladığınızda zamanlanmış görevi oluşturmuş olacaktır.

schtasks /create /tn “ServisAdı” /tr “c:\xxxxx.exe” /sc DAILY /st 23:00:00 /sd 01/01/2014 /ru KullaniciAdi /rp Sifre

Zamanlanmış Görevi doğru oluşturup oluşturmadığına Bilgisayarıma sağ tıklayıp Manage diyerek Task Scheduler kısmından bakabilirsiniz.

Untitled

 

 

Reklamlar

Nisan 18, 2014 Posted by | Donanım, İpucu | , , | Yorum bırakın

Projenin Debug’a düşememe problemi çözümü

Projeye start dediğimde aşağıdaki resimdeki gibi debug sembollerini yükleyemiyordu. Google da bir sürü yol önerileri denedim ancak hiç biri fayda etmedi.
Aldığım hata    “The breakpoint will not currently be hit. No symbols have been loaded for this document.”

–        Clean solution yapıp rebuild ettim

–        Microsoft Temprrary Files I sildim.

–        Bütün dll’leri ve projeyi silip hem TFS den indirdim hem de arkadaşlardaki çalışan versiyonu ile denedim.
aaaaa

En sonunda çözümün DEBUG -> WINDOWS->MODULES de olduğunu öğrendim. Projeye start deyip    Ctrl + D + M yapıp modüllere baktım o da en alttaki resimdeki gibi, BAZI dll’lerde sembolün yüklenemediğini gördüm ve bu sorunda .dll ile pdb dosyasının uyumsuz olmasından kaynaklanıyormuş. Biz şirkette dll’leri Build evenler ile ortak bir folder’a kopyalıyoruz ve bu kopyaladuığımız yere dll’in pdb si doğru atılmamış. dll ve exe’lerin pdblerini düzgün bir şekilde kopyaladıktan sonra sorun çözüldü.
Modules

Ağustos 2, 2013 Posted by | İpucu | , , , , | 3 Yorum

The type or namespace name does not exist in the namespace

Bazen çok basit hatalar insanı saatlerce uğraştırabiliyor. Bir solutionda bir projeye diğer bir
Bu hata karşıma çıktı ve yaklaşık 1-2 saatimi harcadım ve sonunda sorunun ne kadar basit olduğunu anladım. Projeyi Add Reference diyip ekleyince .dll in yanında bir uyarı çıkıyor. Derlenmedi mi diyerek Solution Clean yapıp tekrar derliyorum ancak sorun devam ediyor. Her zaman ki gibi Windows Temp dosyalarını siliyorum vs ancak hata vermeye devam ediyor.
Namesoace Error

 

Sorun Projeme referans verdiğim dll’in Framework versiyonundanmış. Birisi Framework 4.5 diğeri 4.0 olunca böyle bir hata veriyormuş.

Untitled2

Nisan 25, 2013 Posted by | C#, İpucu | , , | Yorum bırakın

Could not load file or assembly hatası

“Could not load file or assembly ‘xxxxxx, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null’ or one of its dependencies. The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG))”

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

——————————————————————————–

Bu hatanın sebebi bazen gerçekten ilgili dll ‘in olmaması olabileceği gibi cachelerde veya temp dosyalarda artıklar kalmasından da kaynaklanabilir.

İlk yapmanız gereken C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\ altındaki dosyaları uçurup, komut satırından “iisreset” yapmak olsun ki boş yere uğraşmayın.

Nisan 12, 2013 Posted by | ASP.NET, İpucu | , , , | 4 Yorum

System.Web.Services.Protocols.SoapException: System.Web.Services.Protocols.SoapException: Server did not recognize the value of HTTP Header SOAPAction

Projemde bir web servisin url ini ve ismini değiştirdim ve bu hatayı almaya başladım.
Çözümün biraz tırmaladıktan sonra basit olduğunu anlıyorsunuz.

Öncelikle temiz olsun diye şu yolu izlemenizi tavsiye ederim.
C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files altındaki temp dosyalardan kurtulmak gerekiyor.
En önemlisi de değiştirdiğiniz URL’i bir yerde eziyor musunuz? Ben configden aldığım bir url ile eziyormuşum ve eski servis url’ine gidiyormuş.

Yani servisinizin wsdl inde metod var fakat servis tarafında bu metod yoksa böyle bir hata almanız muhtemel.

System.Web.Services.Protocols.SoapException: System.Web.Services.Protocols.SoapException: Server did not recognize the value of HTTP Header SOAPAction: http://tempuri.org/VeriBranchMessages.xsd/GoldSendGet.

Aralık 6, 2012 Posted by | C#, İpucu | , , | Yorum bırakın

Windows Server da Telnet’i Aktif Hale Getirmek

Merhabalar, Server tarafları ile ilgili pek ilişkim olmuyor ancak belki sizin de benim gibi ihtiyacınız olabilir diyerekten bir ipucu yazayım dedim. Örneğimizde Telnet Client’ı aktive edeceğiz . Çok basit bir ayar gerçekten.
Eğer windows serverda (run->cmd)  komut satırında telnet yazdığınızda

“‘telnet’ is not  recognized as an internal or external command ,operable program or batch file ”

hatasını alıyorsanız. Yapmanız gereken Start->Administrative Tools->Server Manager ı açıp soldaki menüden  “Features” ve “Add Features” e tıklayıp oradan Telnet Client’ı bulup işaretlemeniz ve kurulumunu yapmanız.

Kasım 9, 2012 Posted by | İpucu | , , , | Yorum bırakın

Interface Extension Method ve Generic Factory Pattern Örneği.

Aşağıda işime yarayan bir kod örneğini paylaşmak istedim.Öncelikle Extension metodlar nedir kısaca ondan bahsedeyim.Net’in varolan sınıflarına yeni bir method eklemek için kullanılan genişletilebilen metodlardır. Örneğin :

string s = "Extension Deneme";
 s.ToLower();
<pre>

Bu örnekte .NET tarafında tanımlı bir extension metodu kullandık. İşte biz de bu şekilde metodlar .net tiplerine veya kendi oluşturduğumuz sınıf tiplerine uygulayabiliriz. Bu kod örneğimizde bir interface ve ondan türeyecek sınıflar için bir extension metod yapacağız . Ayrıca ekstra olarak da Generic Factory Pattern’ini kullanarak sınıfın create edilmesini sağlayacağız. Yani bir örnekte 2 kuş birden.

Generic Factory Pattern de Generic yapıları kullanarak nesnelerin run time da oluşturulmasını sağlayan bir tasarım desenidir. Nesneler recflection yöntemi ile create edilir.


/// <summary>
/// Generic Factory Pattern
/// Software classes, modules, functions etc. should be open for extension, but closed for modification
/// </summary>
public class Factory<T>
{
    private readonly Dictionary<string, Type> _factoryDictionary = new Dictionary<string, Type>();

    public Factory()
    {
        //Assembly içinde T tipinden bulunan bütün sınıflar bulunuyor ve dictionary'e ekleniyor.
        Type[] types = Assembly.GetAssembly(typeof(T)).GetTypes();
        foreach (Type type in types)
        {
            if (!typeof(T).IsAssignableFrom(type) || type == typeof(T))
            {
                continue;
            }
            _factoryDictionary.Add(type.Name, type);
        }
    }

    public T Create<V>(params object[] args)
    {
        return (T)Activator.CreateInstance(_factoryDictionary[typeof(V).Name], args);
    }
}

public static class ExtensionMethods
{
    public static decimal TotalPrices(this IEnumerable<IProduct> productEnum)
    {
        decimal total = 0;
        foreach (IProduct prod in productEnum)
        {
            total += prod.ListPrice;
        }
        return total;
    }
}

public class ShoppingChart : IEnumerable<IProduct>
{
    public List<IProduct> Products { get; set; }

    public IEnumerator<IProduct> GetEnumerator()
    {
        return Products.GetEnumerator();
    }

    IEnumerator IEnumerable.GetEnumerator()
    {
        return GetEnumerator();
    }
}

class Program
{
        static void Main(string[] args)
        {
            Factory<IProduct> factory = new Factory<IProduct>();
            factory.Create<Product>(null);
        }
}

Ekim 8, 2012 Posted by | C#, Yazılım, İpucu | , , , , | 2 Yorum