Я знаю, как добавить веб-ссылку в Visual Studio, достаточно просто.
Я также знаю, как создать обычный проект веб-службы ASP.NET, но это не то, что я делаю здесь.
Итак, WebService, который я запускаю, выглядит так:
try
{
if (host != null)
{
host.Close();
host = null;
}
baseAddress = new Uri("http://mysite.com:8080");
host = new WebServiceHost(typeof(MyProxy), baseAddress);
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
host.Description.Behaviors.Add(smb);
host.Opened += new EventHandler(host_Opened);
host.Closed += new EventHandler(host_Closed);
System.ServiceModel.Description.ServiceEndpoint se = host.AddServiceEndpoint(typeof(IMyProxy), new WebHttpBinding(), baseAddress);
se.Behaviors.Add(new System.ServiceModel.Description.WebHttpBehavior());
host.Open();
}
catch (Exception e)
{
}
// .... stuff ....
[ServiceContract]
public interface IMyProxy
{
[OperationContract]
[WebGet(UriTemplate = "GetArea?searchString={searchString}")]
GetAreaResult GetArea(string searchString);
}
// more stuff of course follows here
Проблема в том, что, когда я пытаюсь добавить WebReference к вышеуказанному сервису в Visual Studio, я получаю сообщение об ошибке.
«Добавить ссылку на службу» -> «Добавить ссылку на веб-сайт», и в URL-адресе я пишу свой URL-адрес, http://mysite.com:8080
Затем я получаю «Служба ... Конечная точка не найдена».и сообщение об ошибке в поле Добавить веб-ссылку:
Произошла ошибка при загрузке 'http://mysite.com:8080/'. Запрос не выполнен с состоянием HTTP 404: Не найдено.Произошла ошибка при загрузке 'http://mysite.com:8080/$metadata'. Запрос не выполнен с HTTP-статусом 404. Не найдено.
Если я открою веб-браузер и сразу перейду к http://mysite.com:8080/GetArea, служба вызывается/ выполнено, как и ожидалось.
Итак, чтобы перефразировать проблему, короче: WSDL / description не существует, поэтому я не могу добавить ссылку на веб-службу.