Archive

Archive for the ‘Visual Studio’ Category

Reporting Services – Unhandled Execution Error

February 24th, 2010 No comments

VS2005-SQL2005 üzerinde problemsiz olarak çalışmakta olan Reporting Services projem, bir sabah gelip projemi açmak istediğimde çalışmamaya karar verdi. Hem tarayıcıda hem VS içerisinde şu hata ile karşılaşıyordum:

Event code: 3005
Event message: An unhandled exception has occurred.
Event time: 22.02.2010 15:44:47
Event time (UTC): 22.02.2010 13:44:47
Event ID: 0e75e77490de4d3f8f881f3f3c94afd0
Event sequence: 20
Event occurrence: 1
Event detail code: 0 

Application information:
    Application domain: /LM/W3SVC/1/ROOT/XYZ-1-129113197812168356
    Trust level: Full
    Application Virtual Path: /XYZ
    Application Path: D:\Projeler\XYZ\
    Machine name: JERRY 

Process information:
    Process ID: 5804
    Process name: w3wp.exe
    Account name: IIS APPPOOL\ASP.NET V2.0 

Exception information:
    Exception type: COMException
    Exception message:  

Request information:
    Request URL: http://localhost/XYZ/Proposals/ProposalInfo.aspx?PROPOSALID=538
    Request path: /XYZ/Proposals/ProposalInfo.aspx
    User host address: ::1
    User:
    Is authenticated: False
    Authentication Type:
    Thread account name: ADV\xxx.yyyy

Thread information:
    Thread ID: 6
    Thread account name: ADV\xxx.yyyy
    Is impersonating: False
    Stack trace:    at Microsoft.SqlServer.ReportingServices2005.Execution.RSExecutionConnection.GetSecureMethods()
   at Microsoft.SqlServer.ReportingServices2005.Execution.RSExecutionConnection.IsSecureMethod(String methodname)
   at Microsoft.SqlServer.ReportingServices2005.Execution.RSExecutionConnection.LoadReport(String Report, String HistoryID)
   at Microsoft.Reporting.WebForms.ServerReport.GetExecutionInfo()
   at Microsoft.Reporting.WebForms.ServerReport.SetParameters(IEnumerable`1 parameters)
   at General.PrepareBarcode(ReportViewer rptBarcode, String symbology, String codeText) in d:\Projeler\XYZ\App_Code\General.cs:line 336
   at Barcode.DrawBarcode() in d:\Projeler\KSL-LMS-CRM\LAB_CRM\Barcode.ascx.cs:line 46
   at Barcode.set_CodeText(String value) in d:\Projeler\XYZ\Barcode.ascx.cs:line 28
   at Proposals_ProposalInfo.GetDetails(Int64 proposalid) in d:\Projeler\XYZ\Proposals\ProposalInfo.aspx.cs:line 257
   at Proposals_ProposalInfo.Page_Load(Object sender, EventArgs e) in d:\Projeler\XYZ\Proposals\ProposalInfo.aspx.cs:line 72
   at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
   at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
   at System.Web.UI.Control.OnLoad(EventArgs e)
   at SecurityGuard.OnLoad(EventArgs e) in d:\Projeler\XYZ\App_Code\SecurityGuard.aspx.cs:line 79
   at System.Web.UI.Control.LoadRecursive()
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Uzun süre Google’dan medet umdum ancak birebir bu hatayı alan hiç bir soruya rastlayamadım. Okuduğum ilgisiz bazı makaleler ve hatanın olduğu satırdaki metot adından da yola çıkarak (GetSecureMethods), sorunun bir yetkilendirme sorunu olabileceğini düşündüm. Web.config dosyamda ise gerekli impersonation bilgisi bulunuyordu ve şifreler/adlar doğruydu.

Eğer tanımlamalar tamamsa ve impersonation çalışmıyorsa sorunun WMI’da olabileceğini düşündüm. Aşağıdaki iki satır ile winmgmt servisini durdurup/başlattım.

net stop winmgmt
net start winmgmt

Ve tadaaa. Hem projem açılıyor hem da tarayıcıda düzgün görüntüleniyor :)

Kısacası; eğer yetkilerinizden eminseniz (her zaman olmayın, ben akşam çalışan sabah çalışmayınca emin olabildim) ve impersonation ayarlarınız da doğruysa ve hala yetki problemleri yaşıyorsanız, sorununz WMI olabilir. Ya bir bilgisayar restartı yada WMI servisini baştan başlatmak sorununuzu çözebilir…

IIS 7.5, Visual Studio and Problems (again)

February 17th, 2010 No comments

I was absolutely sure that I’ll get much more funny errors as I upgrade by office computer to Windows 7. All installations took a day long (because of updates). While installing my default environment triplet Visual Studio 2003-2005-2008, I learnt that VS2003 is no more supported by Windows 7 (and by Vista). Feeling thankful because I do not have to deal with my VS2003 projects recently. Then I tried a VS2005 project and got my beautiful error:

HTTP Error 500.23 – Internal Server Error: An ASP.NET setting has been detected that does not apply in Integrated managed pipeline mode.

After a short research, I’ve find out that performing the recommendation on page does not break down anything:

  1. Go to IIS 7.5
  2. Expand Sites/Default Web Site
  3. Right click on the application that causes problem and choose “Manage Application/Advanced Settings…”
  4. Change “Application Pool” parameter to “Classic .NET AppPool” and save

With glorious feelings solving this issue, I immediately switched to VS2008 and tried to compile a project and got an error telling about an access problem to somewhere under “Temporary ASP.NET Files” directory. I went to directory and gave access to nearly all users that comes to my mind. This time I get an error saying one of project’s dll is inaccesible:

After this point, I cycled through one access problem on “Temporary ASP.NET Files” folder and one access problem on project DLLs. My fight on giving permission and healing lasted about 4-5 hours splitted into two days. I was getting a similar error on browser:

After a long long internet research, the resolution I’ve found made me feel like I want to cry. All problems are resolved miraculously after setting “Special Permissions” on Microsoft .NET folder under Windows folder for “Users” group.

I feel that I’ll live much more funny days with this Windows 7 – Visual Studio double…

IIS 7.5, Visual Studio ve Sorun (yine)

February 17th, 2010 No comments

Ofis makinemi de Windows 7′ye güncelledikten sonra daha eğlenceli hatalar alacağımdan şüphem yoktu. Bütün kurulumlar (updateler yüzünden) tam bir gün sürdü. Makineme hep kurduğum Visual Studio 2003-2005-2008 üçlemesinden ilkini kurarken, artık bu Windows 7′nin (ve Vista’nın) VS2003 desteklemediğini öğrendim. Öneriler çok yaratıcıydı: “Virtual PC’de Windows XP kullanın”. Şimdilik VS2003 ihtiyacı olan projelerime bakmıyor olmamın sevinciyle bir VS2005 projesi denedim. İlk güzel hatayı aldım:

HTTP Error 500.23 – Internal Server Error: An ASP.NET setting has been detected that does not apply in Integrated managed pipeline mode.

Kısa bir araştırma sonrasında, 2005 projeleri için ekrandaki öneriyi uygulamanın bir problem yaratmayacağını öğrendim:

  1. IIS 7.5 Açılır
  2. Sites/Default Web Site dalı genişletilir
  3. Sorunlu Application’a sağ tıklanıp “Manage Application/Advanced Settings…” seçilir
  4. Açılan kutuda “Application Pool” “Classic .NET AppPool” olarak değiştirilip kaydedilir

Bu sorunu çözmenin yaşattığı mutluluk ile hemen bir VS2008 projesi açtım, compile etmeye çalıştım, “Temporary ASP.NET Files” dizini altında bir yerlere erişim problemi olduğu ile ilgili bir hata aldım. Gittim dizine aklıma gelen bütün kullanıcılara yetki verdim. Bu sefer de projenin DLL’lerinden birine ulaşılamadığı hatasını aldım:

Bu noktadan sonra bir “Temporary ASP.NET Files” dizini yetki hatası bir DLL erişim yetki hatası arasında döndüm durdum. Yetki verme denemeleri ve düzeltme uğraşım, iki güne bölünen yaklaşık 4-5 saatlik bir süreç boyunca devam etti. Tarayıcıda alınan hata da benzer bir hataydı:

Oldukça uzun bir internet araştırması sonucunda bulduğum çözüm insanı ağlatacak cinstendi. Windows altındaki Microsoft .NET dizinine “Users” grubu için “Special Permission” vermek bütün sorunu bir anda ortadan kaldırdı.

Bu Windows 7 – Visual Studio ekürisi ile çok eğlenceli günler bizleri bekliyor gibi…

Zen Coding – Visual Studio

November 25th, 2009 No comments

Bir önceki gönderimde (Zen Coding) bahsettiğim Zen Coding ile ilgili yeni bir kaynak buldum. Bu kod için Visual Studio Add-in’i geliştirmeye başlayacağımı söylemiştim. Konu ile ilgilenip, Python kodlarını .NET ortamında compile etmeyi denemeye başladım. Tam IronPython ve IronPyhton Studio ile içli dışlı olmuşken ve bir noktaya gelmişken, Amerika’nın daha önce keşfedildiğini fark ettim…

Einar Regilsson’un Blog’unda, konu ile ilgili bir çalışma yaptığını gördüm. Blog yazısını buradan okuyabilirsiniz. Yazının sonlarına doğru “an installer” linki ile setup dosyasına, “the source” linki ile de kaynak kodlarına erişebilirsiniz. Emeğe saygı olarak hotlink yapmıyorum. Aslında mantık konusunda doğru yolda ilerlediğimi kaynak kodlara baktığımda görmüş oldum. Regilsson da IronPython modülünü kullanarak çalışma yapmıştı. Tek farkı kodu olduğu gibi Python kaynağında bırakıp, on-the-fly compile işlemini IronPython ile yapmış.

Add-in’i çektim, denedim. Hem Visual Studio 2005 hem de 2008′de sorunsuz olarak çalıştı. Kurulumdan sonra Visual Studio’nuz içerisinden bir kısayol ataması yapmanız gerekiyor sadece. Kısaca adımlar şöyle;

  1. Visual Studio kapalı iken Add-in kurulumunu tamamlayın.
  2. Visual Studio’yu açın, “Tools” menüsünden “Add-in Manager…” seçeneğini seçin.
  3. Listede “ZenCoding” karşısındaki iki işaret kutusunu da seçip onaylayın.
  4. “Tools” menüsünden “Options…” seçeneğini seçin.
  5. “Environment” dalından “Keyboard” yaprağını seçin.
  6. Komut listesinden “ZenCoding.VisualStudio.ZenCodingAddIn.Expand” seçeneğini seçin.
  7. “Use new shortcut in” kutusundan “HTML Editor Source View” seçeneğini seçin (eğer ZenCoding özelliklerinin code-behind dosyaları, resource dosyaları gibi diğer bütün yerlerde aktif olmasını istiyorsanız seçimi “Global” olarak bırakabilirsiniz).
  8. “Press shortcut keys” kutusunda istediğiniz kısayolu tuşlayın (ben CTRL+E kullanmayı tercih ettim).
  9. Kutuyu onaylayarak çıkın.
Evet böylelikle ZenCoding add-in’i kullanıma hazır hale gelmiş oluyor. Hemen bir aspx dosyası açıp denemeye başlayabilirsiniz.

table#tblMain.tblClass>th.tblHeaderClass+tr#trSub_$.tblRowClass*5>td#tdSub_$.tblCellClass*3

Yazıp CTRL+E yaptığınızda şu çıktıyı görmek korkunç güzel birşey :)

<table id="tblMain" class="tblClass">
<th class="tblHeaderClass"></th>
<tr id="trSub_1" class="tblRowClass">
 <td id="tdSub_1" class="tblCellClass"></td>
 <td id="tdSub_2" class="tblCellClass"></td>
 <td id="tdSub_3" class="tblCellClass"></td>
</tr>
<tr id="trSub_2" class="tblRowClass">
 <td id="tdSub_1" class="tblCellClass"></td>
 <td id="tdSub_2" class="tblCellClass"></td>
 <td id="tdSub_3" class="tblCellClass"></td>
</tr>
<tr id="trSub_3" class="tblRowClass">
 <td id="tdSub_1" class="tblCellClass"></td>
 <td id="tdSub_2" class="tblCellClass"></td>
 <td id="tdSub_3" class="tblCellClass"></td>
</tr>
<tr id="trSub_4" class="tblRowClass">
 <td id="tdSub_1" class="tblCellClass"></td>
 <td id="tdSub_2" class="tblCellClass"></td>
 <td id="tdSub_3" class="tblCellClass"></td>
</tr>
<tr id="trSub_5" class="tblRowClass">
 <td id="tdSub_1" class="tblCellClass"></td>
 <td id="tdSub_2" class="tblCellClass"></td>
 <td id="tdSub_3" class="tblCellClass"></td>
</tr>
</table>

Bir süre sonra kısa bir video hazırlayıp yazıyı editlemeyi düşünüyorum. Vakit bulabilirsem tabi…

– Ekleme 25.11.2009 18:25 –
Bahsettiğim videoyu hazırladım ve yükledim. Hem kurulum sonrası ilk ayarların yapılışını hem de bir örnek uygulamayı gösterdim. Umarım işinize yarar, iyi seyirler: http://screencast.com/t/ODkxOTY1MjQt

Lose/Lose

November 10th, 2009 No comments

Dostum Ümit Öncel‘in bir yazısından öğrendiğim Lose/Lose süper bir oyun. Detayları okumadan oynamayın lütfen :) İlk önce Visual Studio dosyalarından silmeye başlıyorsa hemen oynamaya başlamayı planlıyorum…
http://www.tekno-cafe.com/index.php/oyun/dunyanin-en-tehlikeli-bilgisayar-oyunu

Bir oyun örneği ve 5000′e yaklaşan puanlar olan highscore listesini (manyaklar listesi de diyebiliriz) görmek için ise http://www.stfj.net/art/2009/loselose

Visual Studio 2010 – Framework 4.0 – IIS Problemi

September 30th, 2009 No comments

Visual Studio 2010 (FW4.0) Beta kurulumu sonrası, IIS üzerinde hiç bir virtual directory için framework değiştirilemiyor. Daha doğrusu değiştirildiği söyleniyor ama tekrar FW4.0′a dönüyor.

Problemi command line’dan şöyle çözmek mümkün:
aspnet_regiis -s W3SVC/1/ROOT/virtual_dir_adi
Burada kullanılan aspnet_regiis’in, v2.0 altındaki olmasına dikkat edilmelidir…