Тестирование веб-службы - PullRequest
       2

Тестирование веб-службы

2 голосов
/ 28 января 2011

У меня есть приложение веб-службы на C #. Когда я запускаю Debug в Visual Studio, он запускает службу с http://localhost:###### и показывает страницу Default.htm со ссылками для проверки различных вызовов, которые можно выполнить для веб-службы.

Есть ли способ вызвать эту локально работающую версию, чтобы проверить ее с другого компьютера? Я попытался сделать вызов, который делают ссылки на тестовой странице, но заменил localhost IP-адресом машины, на которой он запущен, но он сказал, что не может подключиться к серверу.

Ответы [ 6 ]

6 голосов
/ 28 января 2011

Встроенный веб-сервер Visual Studio (Cassini) доступен только с локального компьютера.Если вы хотите использовать веб-службу с другого компьютера, вам потребуется развернуть службу в IIS, и тогда вы сможете получить к ней значение http://xxx.xxx.xxx.xxx/MyWebService/MyWebService.asmx (замените xxx на ваш IP-адрес и MyWebService на соответствующий IISпуть к веб-сайту).

Затем для создания тестового приложения можно создать веб-сайт ASP.NET или приложение WinForms / Console и импортировать ссылку на веб-службу в Visual Studio.Это автоматически создаст для вас прокси-классы и упростит вызов службы.

1 голос
/ 12 июня 2013

Очень простое решение - использовать localtunnel:

http://progrium.com/localtunnel/

Он настроит прокси, который будет указывать на вашу локальную машину и доступ к нему будет возможен за пределами вашей машины.

1 голос
/ 28 января 2011

Просто поместите ваш сервис в консольное приложение, чтобы к нему можно было получить доступ.

  1. Создайте новый проект консольного приложения в своем решении, назвав его чем-то, что имеет смысл (если ваша служба называется MyService возможно MysServiceConsoleHost или некоторое факсимильное сообщение).
  2. Включите ссылку на сервисный проект в этом проекте.
  3. В вашем новом проекте (program.cs) есть что-то вроде следующего:

using System;
using System.ServiceModel;

class Program
{
  static String TITLE_TEXT = "MyService -- Console Host ({0})" + (System.Diagnostics.Debugger.IsAttached?" [DEBUG]":"");
  static void Main(string[] args)
  {
    Console.Title = String.Format(TITLE_TEXT, "Not Running");
    try
    {
      ServiceHost host = new ServiceHost(typeof(MyService));

      Console.Title = String.Format(TITLE_TEXT, "Starting");
      host.open();

      Console.Title = String.Format(TITLE_TEXT, "Running");
      Console.WriteLine("Service is started, press any key to exit.");
      Console.ReadKey();

      Console.Title = String.Format(TITLE_TEXT, "Closing");
      host.close();
      host = null;
      Console.Title = String.Format(TITLE_TEXT, "Closed");
    }
    catch (Exception ex)
    {
      Console.Title = String.Format(TITLE_TEXT, "Exception");
      Console.WriteLine("An error occured while running the host:");
      Console.WriteLine(ex.Message);
      Console.WriteLine();
      Console.WriteLine(ex.StackTrace);
      Console.ReadLine();
    }
  }
}

Замените экземпляры MyService, если необходимо, затем запустите его.Убедитесь, что у вас есть файл .config, в котором указываются конечные точки вашей службы, порт для запуска и т. Д. Тогда любой может получить доступ к вашей службе, и, при необходимости, вы можете выполнить отладку через службу во время активных вызовов.

0 голосов
/ 25 июля 2013

Я могу проверить веб-сервис на localhost.У меня есть терминал Windows CE Motorola, подключенный к моему компьютеру.У меня VS2008 на компьютере.Мой компьютер адрес xxx.xxx.x.xxx и веб-сервер localhost: 62209, поэтому на терминале я использую адрес веб-службы: http://xxx.xxx.x.xxx/62209/MyWebservice.asmx, и это работаетМожет быть, потому что терминал напрямую подключен к компьютеру, на котором работает веб-сервер?Во всяком случае, это работает.

0 голосов
/ 28 января 2011

Да и нет. Если вы используете встроенный сервер разработки ASP.NET (скорее всего, поскольку у вас есть: ####), я не верю, что с ним можно связаться извне.

Но вы можете «развернуть» локальный экземпляр IIS, после чего он может быть запущен с других компьютеров. Web Service Studio - хороший инструмент для тестирования веб-сервисов. Есть также несколько действительно хороших инструментов с открытым исходным кодом. Мне самому нравится SoapUI.

0 голосов
/ 28 января 2011

Если вы используете встроенный в Visual Studio веб-сервер (Cassini), это можно вызвать только локально. Если вы хотите подключиться удаленно, вам придется установить IIS и настроить свой проект для его использования.

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