Веб-вызов WCF REST не найден

#.net #wcf #rest #.net-4.0 #webinvoke

#.net #wcf #rest #.net-4.0 #веб-вызов

Вопрос:

Ниже приведен код, который я использую в своем тестовом приложении:

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using System.ServiceModel.Description;
using System.IO;

namespace MyWCFServices
{
    [ServiceContract]
    interface IHelloWorldService
    {
        [OperationContract]
        String GetMessage(String name);

        //[OperationContract]
        //[WebInvoke(Method = "PUT",UriTemplate = "File/{fileName}")]
        //[WebContentType("application/octet-stream")]
        // bool UploadFile(string fileName, Stream fileContents); 
        [OperationContract]
        [WebInvoke(UriTemplate = "UploadFile/{fileName}")]
        void UploadFile(string fileName, Stream fileContent); 
    }
}
  

Это выдает ошибку и при компиляции для webinvoke. Есть идеи по этому поводу??

Ответ №1:

WebInvokeAttribute находится в отдельной системе сборки.ServiceModel.Web.dll . Вы ссылались на эту сборку? Также вы должны добавить using System.ServiceModel.Web;

Редактировать:

Чтобы использовать System.ServiceModel.Web.dll в сборке вы должны использовать как минимум .NET 3.5 и вы не можете использовать профиль клиента .NET 4.0.

Комментарии:

1. Какую версию .NET / WCF вы используете?

2. Я использую .NET 4.0 (не профиль клиента 4.0)

3. Я никогда не слышал об WebContentType атрибуте и, насколько я знаю, он не является частью WCF.

4. Какой тип проекта вы используете?

5. @Ladislav: Я сталкиваюсь с той же проблемой. Кроме того, я не вижу ссылки на System. ServiceModel. Веб-страница в диалоговом окне добавления ссылки. Я использую Visual Studio 2010 (.net 4.0). Можете ли вы мне помочь, если я чего-то не понимаю??