Web Development Server and IIS

I am using “ASP.NET Development Server” with Visual Studio 2010 Ultimate x64 on a Windows Server 2008 R2 x64 machine. Development Server is my primary development and debug my ASP.NET applications. After my work is done, the website moves to an IIS 7.5 on a Windows Server 2008 R2 x64 (same machine) with “DefaultAppPool”.

I was used to think that an application’s behavior is as same as in both “ASP.NET Development Server” and “IIS”. Both recently realized they are not as same as I think. I found 3 situations that they behave differently:

1. Server.MapPath behaved differently between them. Path that returned from one was different from other one. More detail available here.

2. Object comparison in LINQ-to-Object queries with comparing only objects themselves is not possible in IIS, this comparison should be done with comparing object’s Ids.

3. Our data access layer is implemented via Castle ActiveRecord. In an arbitrary method properties of an entity was updating without calling its .Save() method. Despite I agree this is a bug itself, the method was working properly in ASP.NET Development Server but was not working in IIS.

I’m not the only person that think ASP.NET Development Server and IIS behaves differently. Other people like this think like me.

At this moment I’m curios about How Application Pool affects IIS and what is Application Pool of ASP.NET Development Server. Additionally Pipeline mode may be a cause of many of this problems. Pipeline mode in IIS 6 and below was classic that means they was using ISAPI but in IIS 7 and above a new Pipeline has been emerged. This new Pipeline is named “Integrated” and do not use ISAPI.

دیدگاه‌ها

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *