Использование ASMX WebService из WCF - PullRequest
1 голос
/ 28 октября 2010

Я пытаюсь использовать веб-службу ASMX из моей службы WCF. Вот что я сделал, и я получаю следующую ошибку. «Не было прослушивания конечной точки на« http: // ... », которая могла бы принять сообщение. Это часто вызвано неправильным адресом или действием SOAP. Для получения дополнительной информации см. InnerException, если имеется,

Пожалуйста, помогите мне. Где я делаю не так? Чего мне не хватает?

Я создал библиотеку служб WCF и добавил ссылку на веб-службу ASMX с помощью предоставленного мне файла WSDL.

 namespace WCFClueClient
{
        public class Service1 : IService1
    {
        public string GetData(string value)
        {
         ClueClientServiceReference.InteractiveOrderHandlerClient client = new WCFClueClient.ClueClientServiceReference.InteractiveOrderHandlerClient();
            string response = client.handleInteractiveOrder(value);
            return string.Format("You entered: {0}", response);
        }

           } 

У меня есть консольное приложение, которое ссылается на мою службу WCF

 namespace CLUE
{
    class Program
    {
        static void Main(string[] args)
        {

            CLUETestServiceReference.Service1Client client = new CLUE.CLUETestServiceReference.Service1Client();

           string response =  client.GetData("JOHN DOE");

                }
    }
}
  

мой файл app.config

 <system.serviceModel>
<bindings>
  <basicHttpBinding>
    <binding name="InteractiveOrderHandlerBinding" 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>
  <wsHttpBinding>
    <binding name="WSHttpBinding_IService1" closeTimeout="00:01:00"
      openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
      bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
      maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text"
      textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
      <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
      <reliableSession ordered="true" inactivityTimeout="00:10:00"
        enabled="false" />
      <security mode="Message">
        <transport clientCredentialType="Windows" proxyCredentialType="None"
          realm="" />
        <message clientCredentialType="Windows" negotiateServiceCredential="true"
          algorithmSuite="Default" establishSecurityContext="true" />
      </security>
    </binding>
  </wsHttpBinding>
</bindings>
<client>
  <endpoint address="http://alalppnc079.choicepoint.net:8280/CPRules-rfCommunicationEJB/InteractiveOrderHandlerURI"
    binding="basicHttpBinding" bindingConfiguration="InteractiveOrderHandlerBinding"
    contract="ClueClientServiceReference.InteractiveOrderHandler"
    name="InteractiveOrderHandlerPort" />
  <endpoint address="http://localhost:8731/Design_Time_Addresses/WCFClueClient/Service1/"
    binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IService1"
    contract="WCFCLUETEstServiceReference.IService1" name="WSHttpBinding_IService1">
    <identity>
      <dns value="localhost" />
    </identity>
  </endpoint>
</client>
<services>
  <service name="WCFClueClient.Service1" behaviorConfiguration="WCFClueClient.Service1Behavior">
    <host>
      <baseAddresses>
        <add baseAddress="http://localhost:8731/Design_Time_Addresses/WCFClueClient/Service1/"   />
      </baseAddresses>
    </host>
    <!-- Service Endpoints -->
    <!-- Unless fully qualified, address is relative to base address supplied above -->
    <endpoint address=""  binding="wsHttpBinding" contract="WCFClueClient.IService1">
      <!-- 
          Upon deployment, the following identity element should be removed or replaced to reflect the 
          identity under which the deployed service runs.  If removed, WCF will infer an appropriate identity 
          automatically.
      -->
      <identity>
        <dns value="localhost"/>
      </identity>
    </endpoint>
    <!-- Metadata Endpoints -->
    <!-- The Metadata Exchange endpoint is used by the service to describe itself to clients. --> 
    <!-- This endpoint does not use a secure binding and should be secured or removed before deployment -->
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
  </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior name="WCFClueClient.Service1Behavior">
      <!-- To avoid disclosing metadata information, 
      set the value below to false and remove the metadata endpoint above before deployment -->
      <serviceMetadata httpGetEnabled="True"/>
      <!-- To receive exception details in faults for debugging purposes, 
      set the value below to true.  Set to false before deployment 
      to avoid disclosing exception information -->
      <serviceDebug includeExceptionDetailInFaults="False" />
    </behavior>
  </serviceBehaviors>
</behaviors>

1 Ответ

1 голос
/ 28 октября 2010

Эй, в этом посте есть классное объяснение этой проблемы: Пост Stackoverflow

И если у вас нет проблем ... просто нажмите F5 на вашем решении изамените веб-сайт ... затем перейдите к файлу сборки консольного приложения (в папке отладки) и запустите .exe.Похоже, вы пытаетесь работать с хостом и клиентом веб-сервиса на одном и том же отладчике.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...