Skip to main content

Microsoft Silverlight

Answered Question Webservice (.asmx) not working on IISRSS Feed

(0)

piscevs
piscevs

Member

Member

47 points

53 Posts

Webservice (.asmx) not working on IIS

 Hello!

When the project runs on debuging mode, it's working fine. I'm just pushing silverlight button which calls "hello world" method from Webservice.asmx.

 

But when i'm trying to call push button while project runs from IIS, it causes error :

Webpage error details


Message: Unhandled Error in Silverlight 2 Application An exception occurred during the operation, making the result invalid.  Check InnerException for exception details.   at System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary()
   at SilverlightApplication1.myRef.HelloWorldCompletedEventArgs.get_Result()
   at SilverlightApplication1.Page.proxy_HelloWorldCompleted(Object sender, imageeeeeesCompletedEventArgs e)
   at SilverlightApplication1.myRef.WebService1SoapClient.OnHelloWorldCompleted(Object state)
Line: 1
Char: 1
Code: 0
URI: http://localhost/new/SilverlightApplication1.Web/Main.aspx

 

Here is my silverlight codebehind and webservice code screeshot:

http://img8.imageshack.us/img8/6194/webk.gif

and some web.Config code:

  <bindings>
   <basicHttpBinding>
    <binding name="WebService1Soap" closeTimeout="00:01:00" openTimeout="00:01:00"
     receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false"
     bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
     maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
     messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
     useDefaultWebProxy="true">
     <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
      maxBytesPerRead="4096" maxNameTableCharCount="16384" />
     <security mode="None">
      <transport clientCredentialType="None" proxyCredentialType="None"
       realm="" />
      <message clientCredentialType="UserName" algorithmSuite="Default" />
     </security>
    </binding>
   </basicHttpBinding>
  </bindings>
  <client>
   <endpoint address="http://localhost:2782/WebService1.asmx" binding="basicHttpBinding"
    bindingConfiguration="WebService1Soap" contract="myRef.WebService1Soap"
    name="WebService1Soap" />
  </client>
 </system.serviceModel>

 


I even cant imagine where is the problem. 

Thanks!

clint1222
clint1222

Participant

Participant

1542 points

216 Posts

Re: Webservice (.asmx) not working on IIS

Hi piscevs,

It’s probably an address issue.  You’re using the default address when you create your web service client.  The Silverlight app will get the default address from the ClientConfig file.  Take a look at the ClientConfig file inside the xap file.  Either update the ClientConfig file in a text editor; or update the service reference to point to the IIS web service and rebuilt the project and deploy the new .xap file; or dynamically build the address based on the Host information.

You should update the endpoint address inside the client element in the web.config. 

Also keep in mind that if you use localhost in your address references, the web service calls from your Silverlight app will only work on the machine hosting IIS.  Use the domain name or machine name.

In your completed method test and check for an error message.

            if (e.Error != null)            {                //Handle error;            }            else            {                knopka.Content = e.Result;            } 

If you’re still getting an error, post the returned error message.

 

piscevs
piscevs

Member

Member

47 points

53 Posts

Answered Question

Re: Webservice (.asmx) not working on IIS

 Recently found an asnwer here

Now i'm using 

var proxy = new myRef.WebService1SoapClient("WebService1Soap", "http://localhost/ddd/SilverlightApplication1.Web/WebService1.asmx");

if i run project from IIS
and

var proxy = new myRef.WebService1SoapClient("WebService1Soap", "http://localhost:2782/WebService1.asmx");

if i run from Visual Studio

instead of using

myRef.WebService1SoapClient proxy = new SilverlightApplication1.myRef.WebService1SoapClient();

SoapClient just need a web services actual path

clint1222
clint1222

Participant

Participant

1542 points

216 Posts

Answered Question

Re: Webservice (.asmx) not working on IIS

 

Hi,

Yes the client needs the address to the service.  When you used the default constructor in new SilverlightApplication1.myRef.WebService1SoapClient(), the address came from the ClientConfig file.  When you set up the site in IIS, the web service call was still to http://localhost:2782/WebService1.asmx, which has two potential problems.  One it the service may not be up and running since it's using the development server.  It's also a cross domain call at that point and would require a clientaccesspolicy file or a crossdomain policy file in place to be successful.

You can still type the proxy variable as myRef.WebService1SoapClient.  Not sure why you changed to a variant.

If you're going to access the Silverlight App from a browser that's not running on the host machine, you'll get an error.  You still need to update the web reference from "localhost" to the machingname or domain name.

alok572
alok572

Member

Member

334 points

63 Posts

Answered Question

Re: Webservice (.asmx) not working on IIS

 Hi Piscevs,

I had faced the same problem before. You must be copying the application to your IIS or you maybe creating one in it, right.

Instead of doing that, Just through your solution explorer, publish your website. This will change the settings in your web.config or serviceclient.config file.

 Publish your website on your IIS, thats it.

 

Mark as answer if i've helped you.

Mark as answer if i have helped you.

alok572
alok572

Member

Member

334 points

63 Posts

Re: Re: Webservice (.asmx) not working on IIS

 

Mark as answer if i have helped you.
  • Unanswered Question
  • Answered Question
  • Announcement
Microsoft Communities