Deploying Silverlight Application on IIS7 - silverlight

We have a silverlight application written in Visual Studio (VS) 2010 and we want to deploy it on a Windows Server 2008 R2 box (IIS7). To deploy it in VS I did a right click on the MyProject.Web project, selected "Publish...", from the "Publish method" I selected "File System". I copied the folder over to "C:\inetpub\wwwroot" on the server. In IIS Manager I did a right click on the folder, selected "Convert to Application", a window popped up, where you can select the application pool. I selected the default (.NET 4), I clicked on "Test Settings..." it failed (that was a bad sign), clicked ok.
When I try to access the website from a browser a message box pops up saying do you want to open or save "MySilverlightApp"?
Basically, it wants to download the xap file like it would download a text file or a doc file, it doesn't "run" it.
I have checked the forums and most cases the issue is that the MIME file types are not set up, but I have checked that it's all looks good, and it should as well because on IIS7 it's all set up by default so I am puzzled a bit here.
Thanks for your help.

I have just realized that you tried something about mime types so I need to edit my answer. I want to share a link to provide you a guide. It may be helpful to see if you miss a point.
http://www.iis.net/learn/web-hosting/web-server-for-shared-hosting/configuring-iis-for-silverlight-applications

The route cause of the issue was that the XAP file (inside the ClientBin folder) was the default document.
When I set the aspx file (in the application root folder) as the default document, it started to work fine.

Related

WPF installation

I'm new to WPF, and created a 1st simplistic WPF application that I want it to run in a webbrowser, IE or Fox.
1 - Within the Visual Studio project, I created a /Images folder with a few .jpg files
On the WPF xaml form I have 1 image and 1 button.
When application starts, the image displays /Images/img1.jpg
When User clicks the button the image must display /Images/img2.jpg
How can I force the VS publisher to include the Images folder? Apparently I can't see it in the ApplicationFiles ?
2 - Though I was able to program and run this small app on my local computer, I'm getting lost when it comes to deploying to my hosting ASP where I have a Windows hosting account that runs .NET 3.5!
From Microsoft WPF website they say I shall deploy 3 files:
"The Application Executable .exe
The Deployment Manifest .xbap
The application Manifest .manifest
The .xbap file contains the information that ClickOnce uses to deploy the application and has the .xbap extension."
But I can's see no .xbap files at all within the published stuff!!!
Any clue please?
To answer your first question:
The images will be embedded in the compiled application, so you will not see the images in the application files.
Note:
The build action of images added to your project is 'Resource' by default - leave this as is.
Do not use the resources tab in the Project properties window, just drop and drag the images into the Images folder in the solution explorer.
To help answer your second question:
Did you create the project as an WPF Browser Application?
In your .csproj file you should see the following:
<HostInBrowser>true</HostInBrowser>
<Install>False</Install>
<ApplicationExtension>.xbap</ApplicationExtension>
<TargetZone>Internet</TargetZone>
If not, just recreate the project as a WPF Browser Application and copy your files from the existing project to the new one.

VS2010 Code: 2104 Could not download the Silverlight application

I've just started getting this Javascript error running VS2010 with SL4
Error: Unhandled Error in Silverlight Application
Code: 2104
Category: InitializeError
Message: Could not download the Silverlight application. Check web server settings
Everything was working fine, changed 1 line of code to use a RegularExpression in the web project (using the Silverlight Business Application template) then when rebuilding I get this error.
Google says this is IIS and mimetype related. I'm using Cassini not IIS with VS2010.
Rebooted, cleared xap from IE cache. Error on both IE and FF.
What could be wrong?
I just got this error myself. Looking at source control and my project I noticed that the original test pages that were created when I setup the project got replaced by two new test pages (one .aspx and one .html).
I removed the newly created pages and went back to the old test pages and things started working.
If your situation isn't the same as mine, then just check your silverlightControlHost div in your test page and make sure you are pointing to the correct .xap file and runtime.
if youre not running in IIS then just check your silverlightControlHost div in your test page and make sure you are pointing to the correct .xap file and runtime.
If you were in MVC you could do something similar...
<param name="source" value="#Url.Content("~/ClientBin/NameOfYourSlAppGoesHere.xap")" />
Follow the Step :
On Hosting project, Properties > Silverlight Applications > Add..
This solved my Problem.
Simple error.
I had the same error with my provider. When I looked at the MIME type everything seemed to be OK:
.xap => application/x-silverlight-app
which seems to be the default value on IIS 6. Then I looked at the webpage VS 2010 created and noticed that it has a MIME type of
application/x-silverlight-2
I changed the MIME type on IIS according to the webpage's type and - my silverlight application gets loaded without any error!
This error often occurs because the MIME type is not set, as you have found for yourself. It can also be a mask for the HTTP error. You can see the message by pulling up the XAP file directly from your browser (http://yourwebsite/ClientBin/filename.xap). The file will either attempt to download, or it will show you an HTTP Error.
I also had the same issue on VS 2010. And the reason was that the .xap file was not getting copied to ClientBin directory of the hosting web site project.
Reason was the association from the hosting web site project to the silverlight project was missing for some reason. (should be due to some restructuring of the projects that I've done recently in my case)
I had to re-add the association from the hosting web site project to the silverlight project.
Steps:
On Hosting project, Properties > Silverlight Applications > Add..
I faced a similar issue and it was solved with the help of this blog post: http://vanderbiest.org/blog/2009/10/27/2104-silverlight-initialization-error/
Just ensuring that IIS_IUSRS has read and read & execute permission on the XAP file might fix this issue.
.xap file was not getting copied to ClientBin directory
The problem in my case was that http://mysite/ClientBin/MyApp.xap was returning a 404. The build process was copying the XAP file into /ClientBin/DEBUG/ - I expect this is because someone told it to copy the XAP file to a config specific folder. To fix it I did the following...
Go to the properties of your website.
Go to the Silverlight Apps page.
If your Silverlight app is already referenced there, remove it.
Now click Add.
Select your existing SL app.
Make sure "Copy to a config specific folder" is NOT checked!
for my case it occured In IE and in chrom the project work.
it resolved by
disable protected mode in IE.(Internet Option -->Security)
For my case (with visual studio 2012), one of the projects in the solution wasn't loaded...
right click->reload project.
fixed.

System.Web.Mvc could not laod when publishing silverlight to discountasp.net

I made a simple silverlight web application that just has one button filling up the whole page. It publishes fine to discountasp.net, but when I try to access my website, it says it could not load the file or assembly System.Web.Mvc. I don't even see this in my silverlight project references.
In your MVC project, expand the references folder. Then click on System.Web.MVC and in the properties dialog, set "Copy Local" to true. You may need to do this for System.Web.Routing and System.Web.Abstractions as well. Then Publish your website, select FTP and enter your DiscountAP.net FTP address and username and password. Set passive mode to true.
Sounds like one of your assemblies is referencing the MVC dll. This will be in the GAC on discountasp.net. Download and install the MVC binaries on the webserver you are using and the problem will go away.
Although I am not sure why your site is looking for them. Check the web.config for assembly references.
Hope this helps.

Set default browser when debugging WPF?

I'm using VWD Express 2008 to develop a WPF Browser Application. When I start debugging, it launches the XBAP in my default browser, which is Opera. Obviously, XBAPs don't work in Opera, so I have to repeatedly right-click on the document to open in IE.
Is there any way to change the settings for PresentationHost.exe so that it always opens with IE? A registry setting, perhaps?
Setup the external program as Internet explorer path and the command line arguments as your path to xbap file within quotes, like shown below:
A simple and easy way to do this is to associate *.htm or *.html (don't remember exactly, try both) files with IE, and it will work for XBAP.
UPDATE:
Solution described above works for "Start external program option".
For "Start browser with URL" option you actually can set default browser in Visual Studio. I don't find how to set it through Tools -> Options, but you can achieve it by following steps:
In your solution explorer find a file which meant to be viewed in browser (e.g. *.htm, *.svc)
Right click on this item and choose "Browse With..."
In the opened window you'll see a list box with installed browser and one of them will be marked as default.
In the list box Choose "Internet Explorer" and click "Set as Default" (if there is no IE browser in the list just add it).
Set Default browser to IE for WPF:
Project preporties -> Debug tab properties...
Remove "-debug" only, if there in Command line arguments:(under Start Options)
Choose Start external program ( under Start Action) and give the path of "iexplore.exe"
(EX: C:\Program Files\Internet Explorer\iexplore.exe )
XBAP does work in Opera (and I can make a screenshot to prove the point). Consider updating your Opera version and/or .NET (do you have SP1?).
Check out this post on the msdn forums.
The workaround I found works OK, but requires that Firefox be your default browser:
In Firefox, open the menu Tools / Options / Downloads.
Then click on "View & edit actions" and change the action for XBAP applications to the Windows Presentation Host.
Now when I debug, Firefox receives the XBAP, but then it automatically pass it to the presentation host, which runs into IE. A bit cumbersome, because everytime a new tab gets opened in Firefox, but it's OK. It also works with F5, so you can debug.
Alternatively, you can start IE, navigate to the XBAP URL and then manually attach the debugger to the PresentationHost process (not to IE though).

No "Start" menu shortcut using ClickOnce

I am publishing a .NET 3.5 SP1 WPF application through ClickOnce. By default, when the user clicks on the published link the application gets installed and a menu and shortcut are added to the client's Start/All Programs menu.
How can I prevent the shortcut/menu from being created? (Users need to run the application solely by clicking on the hyperlink to the ".application" file on a web page.)
For this behaviour, set it as online only. Project properties -> Publish -> "The application is available online only" (radio button).
It will still do the same local caching of files etc; it is mainly the start-menu that changes (I don't have a full list of the differences).
This can also be changed in the .application file by setting <deployment install="false"

Resources