Я не уверен, что является причиной этой ошибки.
Разметка службы:
<%@ ServiceHost
Language="C#"
Debug="true"
Service="WebRole1.ExpenseService"
CodeBehind="ExpenseService.svc.cs"
Factory="System.ServiceModel.Activation.WebServiceHostFactory"
%>
Код службы:
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class ExpenseService
{
[OperationContract]
[WebGet(UriTemplate="expenses", ResponseFormat=WebMessageFormat.Xml)]
public List<ExpenseInfo> GetExpenses()
{
List<ExpenseInfo> result = new List<ExpenseInfo>();
// ...
return result;
}
}
Если я запускаюпроект и перейти к службе в браузере, данные отображаются нормально.
Если я пытаюсь добавить службу http://localhost:88/ExpenseService.svc/expenses
, я получаю ошибку:
Документ наURL http://localhost:88/ExpenseService.svc/expenses не был распознан как известный тип документа.
Сообщение об ошибке каждого известного типа может помочь вам решить проблему:
Отчетиз 'XML Schema' - это 'Корневой элемент XML-схемы W3C должен быть, а его пространство имен должно быть' http://www.w3.org/2001/XMLSchema'.'.
Отчет из 'DISCO Document' - это 'Документ обнаружения по URL http://localhost:88/ExpenseService.svc/expenses не может быть найден. '.
Формат документа не распознан.
Отчет из «Документа WSDL»: «Существуетошибка в XML-документе (1, 2). '.
Метаданные содержат ссылку, которая не может бытьe решено: 'http://localhost:88/ExpenseService.svc/expenses'.
Удаленный сервер возвратил неожиданный ответ: (405) Метод не разрешен.
Удаленный сервер возвратил ошибку: (405) Метод не разрешен.
Если служба определена в текущем решении, попробуйте создать решение и снова добавить ссылку на службу.
Если я попытаюсь добавить ссылку на службу к http://localhost:88/ExpenseService.svc
, я получу ошибку:
Произошла ошибка при загрузке 'http://localhost:88/ExpenseService.svc'. Запрос не выполнен с состоянием HTTP 404: Not Found.Метаданные содержат ссылку, которая не может быть разрешена: 'http://localhost:88/ExpenseService.svc'. Не было конечной точки, прослушивающей http://localhost:88/ExpenseService.svc, которая могла бы принять сообщение.Это часто вызвано неправильным адресом или действием SOAP.Смотрите InnerException, если имеется, для более подробной информации.Удаленный сервер возвратил ошибку: (404) Not Found.Если служба определена в текущем решении, попробуйте создать решение и снова добавить ссылку на службу.
Что я делаю не так?
Обновление :Эта страница может быть полезна: http://code.msdn.microsoft.com/wcfazure/Wiki/View.aspx?title=KnownIssues
Обновление 2 : я попробовал то, что было предложено на этом сайте, но безуспешно.