Unable to cast object of type ‘System.Xml.Schema.XmlSchemaAny’ to type ‘System.Xml.Schema.XmlSchemaElement’

If you are using ReportView with AJAX, you have to make sure that you are using the correct version of the AJAX with the .NET version.

AJAX Version Target .NET or VS Version
Version 1.0.20229 .NET Framework 2.0, ASP.NET AJAX 1.0 and Visual Studio 2005
Version 3.0.20229 (2008-02-29 release) .NET Framework 3.5 and Visual Studio 2008
Version 3.0.40412 (April 12 2010 release) .NET 3.5 Service Pack 1 and Visual Studio 2008 SP1
Version 4.1.51116.0 (Nov 16 2011 release) .NET 4.0 and Visual Studio 2010
Version x.x.7.607 June 2013 Release

.NET 4.0 and Visual Studio 2010

  • .NET 3.5 Service Pack 1 and Visual Studio 2008 SP1
  • .NET 4.0 and Visual Studio 2010
  • .NET 4.5 and Visutal Studio 2012

You may found more info in the following link,

MVC Performance in IIS – Part II

Last 2 weeks, I run MVC training kit to IIS 7.5 and was trying to figure out the baseline for the performance tuning for my project. I tested 3 Scenarios,

S1) Hosting MVC 1.0 Training Kit in Application under Default Website
S2) Hosting MVC 1.0 Training Kit in New Website with port 8081
S3) Hosting my company’s MVC Project in New Website with port 8082

And their result of max throughput on Default Page is around,

Result 1 Screen Shot
R1 Result Screen Shot

Result 2 Screen shot
R2 Result Screen Shot

R1) ~200/sec
R2) ~2980/sec
R3) ~410/sec

This time, I tested in more scenarios,

S4) Moving MVC 1.0 Training Kit to root of Default Website
S5) Hosting MVC 1.0 Training Kit in Application under New Website with port 8081
S6) Hosting my company’s MVC Project in Root of Default Website

And their result now are,

Result 4 Screen shot
R4 Result Screen Shot

Result 5 Screen Shot
R5 Result Screen Shot

Result 6 Screen shot
R6 Result Screen Shot

R4) ~225/sec
R5) ~2650/sec
R6) ~170/sec

OK, let me group the result in a table and so we could view all results more clear.

  In Root In Application
MVC 1.0 Kit in Default Website ~225/sec ~200/sec
MVC 1.0 Kit in New Website with port 8081 ~2980/sec ~2650/sec
Company MVC Project in Default Website n/a ~170/sec
Company MVC Project in New Website with port 8082 ~410/sec n/a

Now the results are showing that
1) The performance will be gained about 10% if you move the MVC project from Application under website into root of website.
2) The performance will be gained in a range from 240% – 1325%  if you move the MVC project from Default Webste to New Website.

MVC Performance in IIS – Part I

Recent, I am focusing on MVC/.NET/IIS performance because of my job duty. I have to try and running load test in order to get the number of max thoughput, so that I could figure out a baseline for the web projects in my working company. I then setup a computer to host IIS with MVC projects. Here is what I get,


Web Server
CPU: Core 2 Due E8400
Ram: 4Gb DDR2-800
OS: 64-bit Windows 2008 R2 Enterprise Edition
Data: SQL 2008 Express Edition (for training kit data) + XML files (for my project data)

Client Computer
CPU: Dual-Core E5300
Ram: 4Gb DDR2-800
OS: 32-bit Windows 2008 Enterprise Edition SP2

Test tool
Apache JMeter v2.3.4 with Java Runtime v6.0.200.2

Scenario One

  • Hosting MVC 1.0 Training Kit
  • Hosting as Application in Virtual Directory in Default Website
  • Separate Application Pool from default website
  • Testing with 100 threads, 500 threads, 1000 threads and 1500 threads
  • Max thoughput
    • Default Page: ~200/sec
    • About Page: ~190/sec
    • Customers Page: ~73/sec

Scenario Two

  • Hosting MVC 1.0 Training Kit
  • Hosting in New Website
  • Separate Application Pool
  • Max thoughput
    • Default Page: ~2980/sec
    • Customers Page: ~388/sec

Scenario Three

  • Hosting MVC 2.0 project in my working company
  • Hosting in New Website
  • Separate Application Pool
  • Max thoughput
    • Static data from class: ~410/sec
    • Opening XML data file: ~274/sec

Interesting, this is the first time I try to do some benchmark. And I found out the performance betweenVirtual Directory under Default Website and New Website is hugh. It is 15 times difference. I tried to look around and still cannot figure out the reason. I will come back  here later when I have some updates.

P.S., the above number of the max thoughput are just for reference. They might be up or down with difference hardware and applications installed. In my testing, Server CPU is running up to 100% already. So the bottleneck may be SQL service in same machine, network loading, Machine is not a “REAL” server hardware….etc.

IE8 Beta is officially launched!


IE8 Beta is officially launched in the MIX08. And you may download it and try it now. Here is the email from the IE team,

As of 12 pm today, we officially launched IE8 Beta!! Please check out Dean Hachamovich (IE General Manager) in the MIX08 keynote. To download IE8 Beta 1, please click here. Please read the Release notes and the IE8 Readiness Toolkit which will give a detailed description of the features. We would like to introduce to you our feedback form, which allows you to submit bugs directly to the IE team! Before submitting an issue, please search for your bug. If you find your bug, please rate the bug which will give us an idea of how many people have run into the same problem. Please only rate bugs that are important to you. If you do not find your bug, then submit a feedback form with the details of your bug. We have made several updates to the IE8: Technical Beta Program available on connect. Please check it out! Best regards, The IE Team


[Microsoft Live Labs] Volta: Web Development Using Only the Materials in the Room


Today, Microsoft Live Labs is announcing the Volta technology preview, a developer toolset for building multi-tier web applications using existing and familiar tools, techniques and patterns. Volta’s declarative tier-splitting enables developers to postpone architectural decisions about distribution until the last possible responsible moment. Also, thanks to a shared programming model across multiple-tiers, Volta enables new end-to-end profiling and testing for higher levels of application performance, robustness, and reliability. Using the declarative tier-splitting, developers can refine architectural decisions based on this profiling data. This saves time and costs associated with manual refactoring. In effect, Volta extends the .NET platform to further enable the development of software+services applications, using existing and familiar tools and techniques.

You architect and build your application as a .NET client application, assigning the portions of the application that run on the server tier and client tier late in the development process. You can target either web browsers or the CLR as clients and Volta handles the complexities of tier-splitting. The compiler creates cross-browser JavaScript for the client tier, web services for the server tier, and all communication, serialization, synchronization, security, and other boilerplate code to tie the tiers together. In effect, Volta offers a best-effort experience in multiple environments without requiring tailoring of the application.