3 Haziran 2017 Cumartesi

Your computer could not connect to another console session on the remote computer because you already have a console session in progress.



If you connected with vpn, Check your local ip address. 


  • It may be the same as you want to connect with RDP. If it is same, change your local ip.



Check remote ip with port. 


  • Maybe Remote machine port is closed. First ping rdp ip. If ping is ok, check the port. Default Rdp port is 3389.  You can check with telnet. winkey+r (Run window). write telnet. (If is not installed, you can install program and features window). in telnet promt "o ip port". with out double quotes.

17 Mart 2017 Cuma

StackExchange.Redis performans problemi

.Net ortamında redis kullanacaksanız başvurabileceğiniz en güzel paketlerden biri de şüphesiz StackExchange.Redis.

Fakat dikkat etmeniz gereken önemli bir nokta var. ConnectionMultiplexer nesnesi. Maliyeti yüksek bir nesne olduğu için Static olaran kullanmanız. Initialization ını da static constructor ile yapmanız.

Aksi halde zaman içerisinde memory ve cpu problemleri yaşamanız muhtemel.

The central object in StackExchange.Redis is the ConnectionMultiplexer class in the StackExchange.Redis namespace; this is the object that hides away the details of multiple servers. Because the ConnectionMultiplexer does a lot, it is designed to be shared and reused between callers. You should not create a ConnectionMultiplexer per operation. It is fully thread-safe and ready for this usage. In all the subsequent examples it will be assumed that you have a ConnectionMultiplexer instance stored away for re-use. But for now, let's create one. This is done using ConnectionMultiplexer.Connect or ConnectionMultiplexer.ConnectAsync, passing in either a configuration string or a ConfigurationOptions object. The configuration string can take the form of a comma-delimited series of nodes, so let's just connect to an instance on the local machine on the default port (6379):


https://github.com/StackExchange/StackExchange.Redis/blob/master/Docs/Basics.md

TFS üzerinden dosyaları kalıcı olarak silme / TFS Permanently delete a file

TFS üzerinden dosyalarınızı kalıcı olarak silmek istiyorsanız şu adımları takip edebilirsiniz.

İlk olarak "Source Control Explorer" açıyoruz. Buradan silinen dosyaları görüntüle butonunu seçip silinen dosyaları göreceğiz.

Dosyanının yolunu buradan buluyoruz. Daha sonra Visual Studio Command Promt açıyoruz.





tf destroy $/RCWeb/RentacarssWeb/RC.Presentation.Map.WebUI/Content/global/ /login:adminkullanici@hotmail.com,sifreniz /collection:https://projeadi.visualstudio.com

Bu işlemden sonra yes / no diye soracaktır. (Eğer adresiniz, kullanıcı adınız, şifreniz ve yetkiniz doğru ise.)

Dosyalarınız TFS üzerinden kalıcı olarak silinmiştir.

Eğer aynı klasör ismi ile bir klasör açmaya çalıştığınızda hala "item name already exists on disk please enter another name" gibi bir hata alıyorsanız; Klasörü önce diskinizden silmelisiniz. Veri kaybı olmasın diye local klasörünüz silinmiyor. Bu işlemden sonra artık o klasörü yeniden de açmanız mümkün.

23 Mart 2016 Çarşamba

SQL Server'da Otomatik Artan Identity kolonunda 1000'li artış / SQL Server Auto Identity Column Value Jump Issue

Merhabalar

Otomatik artan identity kolonlarını hepimiz sıklıkla veritabanı tablolarında kullanmaktayız. Fakat herhangi bir silme veya rollback işlemi yapmadığım halde id nin 1000 arttığını gördüm. Nedenini biraz araştırdıktan sonra faydalı bir makaleye rastladım ve problemin benden kaynaklanmadığını anladım. Bu durum eğer veri tipi bigint ise 10000 artış göstermekte.

Durum Nasıl Gerçekleşiyor? 

Tabloya bir kaç kayıt girip, sql'i restart ettikten sonra gerçekleşmekte.


Bu Gerçekten Bir Bug'mı? 

Microsoft'un açıklamasına göre bu bir bug'dan ziyade bir ÖZELLİK. Bunu yapmalarının bir çok sebebi var. 2012 öncesinde böyle bir durum yok. Zaten int veya bigint yeterince büyük. Identity kolonu unique yani tekil olmayı garanti eder. Sıralı artışı değil! Fakat bu yine de bazıları için kabul edilebilir bir durum değil!

Ne Yapmalı ? 

Eğer bu ÖZELLİKLE ilgilenmiyorsak... 

  • Sequence kullanmalı. veya
  • Başlangıç parametresi olarak Sql'e -t272 verilmeli 


Tüm tablolarınızdan otomatik artan identity alanlarını kaldırın.


CREATE SEQUENCE Id_Sequence
    AS INT
    START WITH 1
    INCREMENT BY 1
    MINVALUE 0
    NO MAXVALUE
   NO CACHE


insert into MyTestTable values(NEXT VALUE FOR Id_Sequence, 'Mr.Tom'); 


insert into MyTestTable values(NEXT VALUE FOR Id_Sequence, 'Mr.Jackson'); 

SQLServer configuration manager açın, instance 'ı bulun ve sağ tıklayıp özelliklere girin. Startup Parameters (Başlangıç Parametreleri) sekmesine gelin ve buraya -t272 değerini yazın. Sql'i tekrar başlatın. Farkı göreceksiniz.

Eğer mevcut bir veritabanınız ve idleriniz var ise bunlardan vazgeçmek zor olacağı için Başlangıç parametresi verme yöntemi tercih edilebilir. Yeni bir db oluşturuyorsanız kendi sequence tablonuzu oluşturmanız tercih edilebilir. İnternette Identity kullanmanın avantaj ve dezavantajları hakkında detaylı makaleler bulabilirsiniz.

Kaynak : http://www.codeproject.com/Tips/668042/SQL-Server-Auto-Identity-Column-Value-Jump-Is

15 Eylül 2015 Salı

Validation type names in unobtrusive client validation rules must be unique. The following validation type was seen more than once: required

Eğer mvc projeniz de böyle bir hata alıyorsanız ve hatada belirttiği tarzda birşey yapmadığınız veya kendi customvalidatior 'ınızı yazmadığınız halde bu hatayı alıyorsanız, çözüm için doğru yerdesiniz. Projenizde ninject kullandıysanız ninjectin kendi modelvalidatior'u bu hatayı almanıza sebep oluyor. Öncelikle hatanın ninject'den kaynaklandığına emin olmak için global.asax üzerinde ninjecti register ettiğiniz bölümü kapatıp bir controllerınıza test amaçlı default constructior ekleyin. Validation hatasını aldığınız sayfa ninject registiration kapandığında çalışıyorsa yapmanız gereken çok basit.
 private void RegisterDependencyResolver()  
     {  
       var kernel = new StandardKernel();  
       kernel.Unbind<ModelValidatorProvider>();  
       RegisterServices(kernel);  
       DependencyResolver.SetResolver(new Expert.WebUI.Helpers.NinjectDependencyResolver(kernel));  
     }  
kernel.Unbind(); Eklemeniz yeterli olacaktır.

16 Ağustos 2012 Perşembe

CLR SP AND WEBSERVICE

Right Click project, On Build Tab set to Generate Serialization assembly : on On Database Tab set to Permission Level : Safe build project. Copy from bin/debug directory assembly.dll and assembly.XmlSerializers.dll Paste them to Sql Server machine on c drive my assembly name =SP_SMSSENDER CREATE ASSEMBLY SP_SMSSENDER from 'C:\SP_SMSSENDER.dll' GO CREATE ASSEMBLY [SP_SMSSENDER.XmlSerializers.dll] from 'C:\SP_SMSSENDER.XmlSerializers.dll' go create PROCEDURE [dbo].[SP_SENDSMS] @smpRef [int], @message [nvarchar](4000), @number [nvarchar](4000) WITH EXECUTE AS CALLER AS EXTERNAL NAME [SP_SMSSENDER].[StoredProcedures].[SP_SENDSMS] GO ALTER ASSEMBLY SP_SMSSENDER WITH PERMISSION_SET=EXTERNAL_ACCESS

18 Mayıs 2011 Çarşamba

Microsoft Distributed Transaction Coordinator (MSDTC) Uzak bağlantısı ve daha fazlası. Remote Connection MSDTC and more

Bugün iki farklı bilgisayarda veri bütünlüğünü koruyabilmek için bir delete trigger'a ihtiyaç duydum. Sunucu A üzerine Sunucu B'yi Link server olarak ekledim. After Delete Triggerımı ilgili tabloya ekledim. Trigger içerisinde Sunucu B de yeralan bir tabloyu eden bir script bulunmaktaydı. Trigger'ın tetiklenmesini sağladığımda ise

MSDTC 'ın Sunucu B de çalışmadığını belirten
"MSDTC on server 'servername' is unavailable"
hatasını aldım.

Bunun sebebi trigger içerisine mevcut transactionın gönderilmesi ve trigger içerisinde uzak sunucuya ulaşmaya çalışmaktır.


Uzak sunucularda yeralan ortak iki transaction işlemi, özel bir servis olan MSDTC tarafından yönetilir.


Sunucu B ye gidip çalıştıra gidip "services.msc" yazdım ve açılan pencereden Distributed Transaction Coordinator 'ı bulup start ettim. Sunucu A da da servisin çalıştığından emin oldum.Tekrar denediğimde bu sefer farklı bir hata beni bekliyordu.



"The partner transaction manager has disabled its support for remote/network transactions."

Bu durumu çözmek için dcomcnfg.exe yazıp açılan pencerede sırasıyla

--Component Service
--Computers
--My Computer
--Distributed Transaction Coordinator
--Local DTC

Sağ click properties


Security tabında bulunan aşağıdaki alanları işaretledim.
Network DTC Access
Allow Remote Clients
Allow Remote Administration
Allow InBound
Allow OutBound
Enable XA Transactions

İki sunucuda da bu ayarları yaptım. Tekrar denediğimde hala network erişiminin olmadığını söyledi.

Bu arada bu testleri herseferinde trigger tetikleyerek değil daha kolay bir yol olan DTCping.exe ile yapabilirsiniz. DOWNLOAD

İki sunucuda da exeyi çalıştırın. Sunucuların Netbios isimlerini yazın. Sırasıyla A ve B sunucularında PING buttonuna tıklayın. Hata almıyorsanız işlem tamamdır.

Alınan hataları yorumlamak için

http://blogs.msdn.com/b/distributedservices/archive/2008/11/12/troubleshooting-msdtc-issues-with-the-dtcping-tool.aspx#AccessisDenied
adresini ziyaret edebilirsiniz.

Firewall ayarlarına MSDTC çalışabilmesi için gerekli 135 RPC endpoint portunu exception olarak ekledim.

Firewall ayarlarından emin olduktan sonra tekrar denedim tekrar aynı problemi yaşadım.


Eğer sizde de sunuculardan birisi Xp, Vista veya Win7 ise sizde bu problemi yaşayabilirsiniz.

Bunun için yapılması gereken;

1. Click Start, click Run, type Regedit, and then click OK.
2. Locate and then click the following registry key:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT
3. On the Edit menu, point to New, and then click Key.
Note If the RPC registry key already exists, go to step 5.
4. Type RPC, and then press ENTER.
5. Click RPC.
6. On the Edit menu, point to New, and then click DWORD Value.
7. Type RestrictRemoteClients, and then press ENTER.
8. Click RestrictRemoteClients.
9. On the Edit menu, click Modify.
10. In the Value data box, type 0, and then click OK.
Note To enable the RestrictRemoteClients setting, type1.
11. Close Registry Editor and restart the computer.

Yukarıdaki işlemleri tamamlayıp tekrar denediğinizde başarıya ulaşacaksınız.