Skip to main content

Silverlight 2.0 Beta1 CrossDomain Issues

Preparing for my upcoming "What's New with ASP.NET 3.5 Extensions" presentation at the Central Ohio Day of .Net, I ran into a roadblock with my simple Silverlight demo.

I have a Silverlight application calling an ASP.Net Web Service (traditional ASMX). The Silverlight application is hosted on an ASPX page served up in an ASP.Net Web Application.

I kept receiving a mix of the following two errors:

An exception of type 'System.ServiceModel.CommunicationException' occurred in System.ServiceModel.dll but was not handled in user code

Additional information: [CrossDomainError]

---------------------------------------------------------------

An exception of type 'System.ServiceModel.ProtocolException' occurred in System.ServiceModel.dll but was not handled in user code

Additional information: [UnexpectedHttpResponseCode]
Arguments:Not Found

Essentially, this is saying, "hey this control/page you're browsing on safesite.com is trying to interact with something over on unsafesite.com...and we're preventing it". Good for security, bad for demos.

Originally, when creating my Silverlight application, I chose the "Generate an HTML test page to host Silverlight within this project" option instead of creating a new web application. Bad idea. You'll always experience this cross domain issue using the HTML hosting page while calling a backend service. I quickly switched to a web application.

The easiest fix for me was to switch the web site and web service from using Cassini  localhost with dynamic ports to the machine name and named virtual directories.

Here's my original properties on the web service project:

image

I switched it to:

image

The fine folks at Microsoft even provided a helpful "Create Virtual Directory" button.

Within my Silverlight project, I also needed to update the Service Reference (orginal):

image

I switched it to:

image

After you Configure Service Reference (above), make sure you Update Service Reference (below) to update the configuration code built for you by Visual Studio:

image

Despite the Silverlight 2.0 Beta1 recent release, there is much traffic about this issue in the forums and on blogs. It's actually nothing new. I ran into this issue with Flash a while back. Another, more production-ready solution is to leverage a policy file indicating to the object (Silverlight, in this case) that it's ok to interact with a particular service on some other domain. This is a file named crossdomain.xml and/or clientaccesspolicy.xml. More information at "Some tips on cross-domain calls" and "How to: Make a Service Available Across Domain Boundaries".

RELATED

Silverlight 2.0 and WCF

Silverlight Forums CrossDomainError

Comments

Unknown said…
Intersting post and good to know to watch out for this.

Popular posts from this blog

Configuring a Development Sandbox for the Azure CTP

I'm getting up to speed on Azure and the other cloud SDKs and need to configure an environment for development, demos and learning. My experiences... First off, if you've read my blog, you know I haven't installed non-productivity software on my core OS for years . Further, I don't get the warm and fuzzies installing CTP software on my core OS. I also love the recoverability and start-over-from-a-checkpoint features of virtualization. Virtual PC (VPC) houses all my development, demo and learning sandbox instances. So, let's start off with a VPC instance. For this to work well, ideally, you need a good 4GB of memory. Further to the ideal, you're running x64 so as to have access to the full 4GB of memory. ACQUIRE AN AZURE SERVICES DEVELOPER KEY To develop against Azure and/or .Net Services and SQL Services, you need an invitation code. Oooh, very exclusive. Pretty people to the front of the line! You can start the process here . If you run into problems, che

SOA Primer

Service-oriented architecture (Wikipedia) Service Orientation and Its Role in Your Connected Systems Strategy Understanding Service-Oriented Architecture Architecting Disconnected Mobile Applications Using a Service Oriented Architecture Service-Oriented Architecture: Considerations for Agile Systems Service-Oriented Architecture: Implementation Challenges SOA Challenges: Entity Aggregation New to SOA and Web Services Service-Oriented, Distributed, High-Performance Computing Service-Oriented Integration Developing Service-Oriented Architectures Messaging Patterns in Service-Oriented Architecture, Part 1 Messaging Patterns in Service Oriented Architecture, Part 2 Implementing Service-Oriented Integration with BizTalk Server 2004 Legacy and Business Partner Integration: Using Service-Oriented Architecture for Integration Service Gateway Pattern Service Orientation in Enterprise Computing Secure, Reliable, Transacted Web Services: Architecture and Composition Application

Get Your Team Foundation Server Hate On!

[Google ranking skyrockets... ;-)] I'm a big fan of TFS/VSTS. However, there are a good pocket of folks who take issue with the way TFS handles or implements a certain feature. Well this is your chance to vent! I'm planning a presentation around the "Top 10 TFS/VSTS Hates and How to Alleviate Them"...or something along those lines. But I need your help. Post a comment below detailing your dislike. If it's legitimate, I'll highlight it in the presentation and [hopefully] provide an alternative, resolution, or work-around. Thanks in advance! Update 7/19/2008: Version Control and Microsoft