Checklist: Web Services Performance
Retired Content |
---|
This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist. |
Improving .NET Application Performance and Scalability
J.D. Meier, Srinath Vasireddy, Ashish Babbar, and Alex Mackman
Microsoft Corporation
May 2004
Related Links
Home Page for Improving .NET Application Performance and Scalability
Send feedback to Scale@microsoft.com
This checklist is a companion to Chapter 10, "Improving Web Services Performance"
Check | Description |
---|---|
![]() |
Design chunky interfaces to reduce round trips. |
![]() |
Prefer message-based programming over remote procedure call (RPC) style. |
![]() |
Use literal message encoding for parameter formatting. |
![]() |
Prefer primitive types for Web service parameters. |
![]() |
Avoid maintaining server state between calls. |
![]() |
Consider input validation for costly Web methods. |
![]() |
Consider your approach to caching. |
![]() |
Consider approaches for bulk data transfer and attachments. |
![]() |
Avoid calling local Web Services. |
Check | Description |
---|---|
![]() |
Configure the maxconnection attribute. |
![]() |
Prioritize and allocate connections across discrete Web services. |
![]() |
Use a single identity for outbound calls. |
![]() |
Consider UnsafeAuthenticatedConnectionSharing with Windows Integrated Authentication. |
![]() |
Use PreAuthenticate with Basic authentication. |
Check | Description |
---|---|
![]() |
Tune the thread pool using the formula for reducing contention. |
![]() |
Consider minIoThreads and minWorkerThreads for intermittent burst load. |
Check | Description |
---|---|
![]() |
Consider using the OneWay attribute if you do not require a response. |
Check | Description |
---|---|
![]() |
Use asynchronous Web methods for I/O operations. |
![]() |
Do not use asynchronous Web methods when you depend on worker threads. |
Check | Description |
---|---|
![]() |
Consider calling Web services asynchronously when you have additional parallel work. |
![]() |
Use asynchronous invocation to call multiple unrelated Web services. |
![]() |
Call Web services asynchronously for UI responsiveness. |
Check | Description |
---|---|
![]() |
Set your proxy timeout appropriately. |
![]() |
Set your ASP.NET timeout greater than your Web service timeout. |
![]() |
Abort connections for ASP.NET pages that timeout before a Web services call completes. |
![]() |
Consider the responseDeadlockInterval attribute. |
Check | Description |
---|---|
![]() |
Prefer primitive parameter types. |
![]() |
Consider buffering. |
![]() |
Consider caching responses. |
![]() |
Enable session state only for Web methods that need it. |
Check | Description |
---|---|
![]() |
Reduce serialization with XmlIgnore. |
![]() |
Reduce round trips. |
![]() |
Consider XML compression. |
Check | Description |
---|---|
![]() |
Consider output caching for less volatile data. |
![]() |
Consider providing cache-related information to clients. |
![]() |
Consider perimeter caching. |
Check | Description |
---|---|
![]() |
Use session state only where it is needed. |
![]() |
Avoid server affinity. |
Check | Description |
---|---|
![]() |
Prefer Base64 encoding. Direct Internet Message Encapsulation (DIME) is a supported part of Web Services Enhancements (WSE), but Microsoft® is not investing in this approach long-term. DIME is limited because the attachments are outside the SOAP envelope. |
Check | Description |
---|---|
![]() |
Avoid single-threaded apartment (STA) COM objects. |
Retired Content |
---|
This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist. |