2009-05-11 6 views
2

Я создал только самое основное приложение службы WCF для создания прототипов, но я не могу заставить реализацию WebGet работать.Приложение WCF Service возвращает 404 с использованием WebGet

Вот мой интерфейс:

[ServiceContract] 
public interface IService 
{ 
    [OperationContract] 
    [WebGet(UriTemplate = "/rest/{value}")] 
    string Test(string value); 
} 

Вот реализация:

public string Test(string value) 
{ 
    return string.Format("You entered: {0}", value); 
} 

Но если я иду в http://localhost:3305/rest/Hello в моем браузере, я получаю 404. Я использую веб-сервер VS 2008.

ответ

4

Я думаю, что ваше отсутствие фактического названия службы.

http://localhost:3305/yourservicename.svc/rest/Hello

+0

Угу - не забудьте SVC-файл в URL! –

+0

Это сработало. Мне также пришлось изменить привязку окончаний к «webHttpBinding» и создать поведение конечной точки, которое указывало - возможно, очевидные промахи для людей, знакомых с этим материалом, но не легко обнаруживаемые для людей, новых для WCF. Еще раз спасибо. – jerhinesmith

+0

Что вы изменили внутри Web.Config, чтобы заставить его работать с webHttpBinding? – glarkou

1

Update

config.SetServiceOperationAccessRule("*", ServiceOperationRights.All); 

public static void InitializeService(DataServiceConfiguration config) 
    { 
     // TODO: set rules to indicate which entity sets and service operations are visible, updatable, etc. 
     // Examples: 
     config.SetEntitySetAccessRule("*", EntitySetRights.AllRead); 
     config.SetServiceOperationAccessRule("*", ServiceOperationRights.All); 
     //config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2; 
    } 
Смежные вопросы