在ServiceHost指令中作为Service属性值提供的类型'BookService.Service1

本文关键字:类型 Service1 BookService 指令 ServiceHost 属性 Service | 更新日期: 2023-09-27 18:06:42

嗨,我只是学习WCF,我试图为现有的ASP创建一个web服务。asp.net MVC 4应用程序。以下是我目前所做的:

我已经创建了一个WCF服务应用程序。我定义了数据契约和数据成员:
[DataContract]
public class BookData
{
    [DataMember]
    public int Id { get; set; }
    [DataMember]
    public string Name { get; set; }
    [DataMember]
    public string Author { get; set; }
    [DataMember]
    public string Description { get; set; }
    [DataMember]
    public DateTime PublicationDate { get; set; }
    [DataMember]
    public int CategoryId { get; set; }
    [DataMember]
    public decimal Price { get; set; }
    [DataMember]
    public string BookUrl { get; set; }
}

我已经定义了服务契约:

[ServiceContract]
public interface IBookService
{
    IEnumerable<BookData> GetBooks(int pageNumber, int numberOfBooksOnPage);
    IEnumerable<BookData> GetBookByCategory(int categoryId, int pageNumber, int numberOfBooksOnPage);
    BookModel GetBookById(int bookId);
    int CountBooks();
    int CountBooksByCategory(int categoryId);
    void AddBook(BookData book);
    void UpdateBook(BookData book);
    void DeleteBook(int bookId);
}

存在一个已存在的Service1。svc文件我重命名为BookService.svc。当双击这个文件时,它实际上是一个类,我使它继承IBookService并实现了所有的方法。

当我右键单击BookService。我得到这个错误:

类型为"BookService"。Service1’,作为ServiceHost指令中的Service属性值提供,或者在配置元素系统中提供。

无法找到serviceModel/serviceHostingEnvironment/serviceActivations。

我该如何解决这个问题?

在ServiceHost指令中作为Service属性值提供的类型'BookService.Service1

回答一个老问题,只是为了所有谷歌搜索者的利益:)我刚刚遇到了同样的问题。

当我试图解决这个问题时,我发现我忘了在我的"file.svc"的标记部分更改类名。

右键单击你的"文件"。并选择"查看标记"

您将发现一个很长的行,其中的部分如下:Service=" somerootnamspace .class1"你应该把'class1'改成真正的类名。

请让我知道它是否有帮助,或者如果你已经解决了。如果上面的内容不清楚,请告诉我,我会重新解释。