Archived
This forum has been archived. Please start a new discussion on GitHub.
Silverlight client: Failed to contact the Bridge
in Help Center
Hi, I have configured IIS to host the sample IceSL-0.1.0 (which also contains the bridge). I've added PUT to the list of verbs handled by .ashx and added all the configuration needed (MIME types etc).
However, clicking on a button returns:
My IIS error log only shows (when clicking a button):
- - - 404
I installed LiveHTTPHeaders to watch the request/response from Firefox, and it seems that Page.xaml.cs is sending a PUT request to the Bridge, but a response of 404 Not Found is returned
http://myIPaddress:1287/hellosl/IceBridge.ashx
PUT /hellosl/IceBridge.ashx HTTP/1.1
Host: myIPaddress:1287
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Content-Type: application/binary
Referer: http://myIPaddress:1287/hellosl/TestPage.html
Content-Length: 5
IHTP
HTTP/1.x 404 Object Not Found
Server: Microsoft-IIS/5.1
Date: Tue, 15 Apr 2008 21:04:40 GMT
Connection: close
Content-Type: text/html
Content-Length: 102
Just wondering if anyone has encountered this problem? I am using Windows XP SP2. This works fine when i run from Visual studio (localhost).
However, clicking on a button returns:
OnClick method: Call failed with exception: Ice.ProtocolException reason = "invalid http response code: Not Found" at IceInternal.ProxyFactory.checkRetryAfterException(LocalException ex, REference ref at Ice.ObjectPrxHelperBase.handleException__(LocalException ex, Int32 cnt) at Ice.ObjectPrxHelperBase.handleExceptionWrapperRelaxed__(LocalExceptionWrapper e at Demo.HelloPrxHelper.sayHello(Int32 delay, Dictionary '2 context__, Boolean explicitC at Demo.HelloPrxHelper.sayHello(Int32 delay) at helloC.Page.OnClick(Object sender, MouseEventArgs e)
My IIS error log only shows (when clicking a button):
- - - 404
I installed LiveHTTPHeaders to watch the request/response from Firefox, and it seems that Page.xaml.cs is sending a PUT request to the Bridge, but a response of 404 Not Found is returned
http://myIPaddress:1287/hellosl/IceBridge.ashx
PUT /hellosl/IceBridge.ashx HTTP/1.1
Host: myIPaddress:1287
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Content-Type: application/binary
Referer: http://myIPaddress:1287/hellosl/TestPage.html
Content-Length: 5
IHTP
HTTP/1.x 404 Object Not Found
Server: Microsoft-IIS/5.1
Date: Tue, 15 Apr 2008 21:04:40 GMT
Connection: close
Content-Type: text/html
Content-Length: 102
Just wondering if anyone has encountered this problem? I am using Windows XP SP2. This works fine when i run from Visual studio (localhost).
0
Comments
-
The .ashx file is in the correct location, with the correct permissions?0
-
Yes. I can browse directly from IE to
http://myIPaddress:1287/hellosl/IceBridge.ashx
and it would initialize the bridge, call ProcessRequest (which i can see from the EventViewer logs).
When Running the app from http://myIPaddress:1287/hellosl/TestPage.html, nothing shows up in the Event logs.
I have given read and execute permissions to the anonymous account that IIS authenticates as.0 -
Using IE to browse to the address is a GET, whereas the SL application uses a PUT. Perhaps something is wrong with your PUT permission configuration?0
-
how can I check this?0
-
You could look at your web.config, or check the IIS configuration tool. It might be better to use a real http sniffing tool such as HTTP Sniffer. HTTP Protocol Sniffer., or HttpWatch: An HTTP Viewer and HTTP Sniffer for IE 6 & 7. That will show you what IE sends and SL sends and whatever differences there are between the two. What error code is IIS logging? You should be able to find a code like 404.X in the event log. What is X?0
-
Do I have to add any entries in the web.config? Or u meant NTFS permissions of that file + put verbs to .ashx on IIS Default website ( i have set file permission and put verbs using IIS manager ).
LiveHTTPHeaders is only for Firefox. The IIS log only returns - - - 404, nothing more:0 -
Also, are you actually using SL with Firefox, because when we tested that it didn't work (as noted in the installation notes).0
-
No, with IE.0
-
I don't see in the access log above any access to IceBridge.ashx. For the 404 specific errors codes look at Description of Microsoft Internet Information Services (IIS) 5.0 and 6.0 status codes.
With respect to web.config, you should not have to directly edit this file. However, from inspecting the content of the file you should be able to determine the configured set of permissible verbs on each of the resources.0 -
Hi
I have installed the IceSl demo in IIS 5.1 again and here are details of what i do.
This time i use one virtual directory for the bridge and other for the sl client. In this way we can reuse the Bridge setup for other demos hosted
on the same machine.
IIS 5.1 Setup
===================================
Install the IceBridge
===================================
1) Create a new directory where you want to place IceBridge files
in this demo we are goint to use c:\icebridge as the physical location
of the IceBridge in our computer.
In this directory we need to put following files that are in IceSl distribution.
Global.asax
IceBridge.ashx
Web.config
2) Give "ASPNET" user full controll over this directory.
3) Give "Internet Guess Account" the following rights for files Global.asax and IceBridge.ashx
Modify, Read & Execute, Read, Write
4) Give "Internet Guess Account" read access to the Web.config file
5) Open IIS console from the administrative tools
and create a new virtual directory called icebridge and points to
c:\icebridge , check the Read, Run & Execute actions in the Wizard
access permissions.
6) Right click the icebridge virtual directory on IIS console.
6.1 Virtual Directory.
Read & Log Visits are enabled.
Execute permisions: Script & Executables.
Application protection: Medium (Pooled)
Click on "Configuration.." and then double click .ashx
in the open dialog enable this options
ALL VERBS option and Script Engine, Check file exits.
7) Give IceBridge.ashx & Global.asax Script Source Access.
For this rigth click on the file inside the IIS console click properties.
And Check that Script source access is checked in both files. Also check that annonymous
access is checked in the File Security tab, that is only needed if you want your bridge be public accessible from clients.
Once here the bridge is ready to work with any ice silverlight client hosted in the same server uri.
==========================================
Setup the silverlight hello demo client
==========================================
1) Open the hello demo solution and change the Ice.BridgeUri in Page.xaml.cs
to point to: http://localhost:1287/icebridge/IceBridge.ashx and rebuild the solution.
2) Create a new directory and copy this files from the hellosl WebApp to it.
c:\hellosl
c:\hellosl\Page.xaml
c:\hellosl\TestPage.html
c:\hellosl\TestPage.html.js
c:\hellosl\Silverlight.js
c:\hellosl\ClientBin\
c:\hellosl\ClientBin\helloC.dll
c:\hellosl\ClientBin\IceSl.dll
3) From IIS console create a new Virtual directory that points to c:\hellosl
and check Read & Browser permissions in the virtual directory wizard.
4) The hellosl directory need the silverlight mime types, if you have allready setup it in the Default
WebSite is not needed to add again for each site.
Silverlight required this mime types.
* application/x-msdownload .dll
* application/xaml+xml .xaml
Hope this help
Jose0