calling asmx from c# server side: endpoint element matching this contract could be found in the client element

后端 未结 1 1697
春和景丽
春和景丽 2020-12-05 10:58

I wrote an asmx webSerivce on srv1. I wrote a bll project of an asp.net (original text: an asp.net) project on srv2. Both are hosted under the same web doma

相关标签:
1条回答
  • 2020-12-05 11:20

    OK, let me try to rephrase your scenario to make sure I got it right:

    1. You have an ASMX web service hosted on some domain.
    2. You have an ASP.NET application hosted on the same or a different domain (it doesn't really matter) from which you want to to consume this ASMX web service using a WCF client (svcutil).

    The first step is to add a Service Reference to the ASP.NET application by pointing to the WSDL of the ASMX service:

    enter image description here

    This will do 2 things:

    • It will add a ServiceReference to your web application

    enter image description here

    • It will modify your web.config and include the client endpoints:

      <client>
        <endpoint address="http://ws.cdyne.com/NotifyWS/phonenotify.asmx"
          binding="basicHttpBinding" bindingConfiguration="PhoneNotifySoap"
          contract="ServiceReference1.PhoneNotifySoap" name="PhoneNotifySoap" />
        <endpoint address="http://ws.cdyne.com/NotifyWS/phonenotify.asmx"
          binding="customBinding" bindingConfiguration="PhoneNotifySoap12"
          contract="ServiceReference1.PhoneNotifySoap" name="PhoneNotifySoap12" />
      </client>
      

    Now when you want to invoke this service from your application you will have to choose the endpoint you want to use:

    using (var client = new ServiceReference1.PhoneNotifySoapClient("PhoneNotifySoap"))
    {
        var result = client.GetVersion();
    }
    

    Now simply replace my code snippets with your actual service names.

    0 讨论(0)
提交回复
热议问题