代码之家  ›  专栏  ›  技术社区  ›  Echilon

WCF服务对Silverlight无效

  •  0
  • Echilon  · 技术社区  · 14 年前

    我正在尝试让WCF使用Silverlight。我是WCF的初学者,但我以前写过ASMX服务。出于某种原因,当我取消对服务中多个方法的注释时,Silverlight拒绝让我使用它,并说它无效。如果有人能帮忙,我的代码在下面。我正在使用实体框架,如果这有区别的话。

    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    public class MessageService {//: IMessageService {
    /// <summary>
    /// Sends a new message.
    /// </summary>
    /// <param name="recipientUsername">The recipient username.</param>
    /// <param name="subject">The subject.</param>
    /// <param name="messageBody">The message body.</param>
    [OperationContract]
    public void SendMessageByDetails(string recipientUsername, string subject, string messageBody) {
        MessageDAL.SendMessage(recipientUsername, subject, messageBody);
    }
    
    /// <summary>
    /// Sends a new message.
    /// </summary>
    /// <param name="msg">The message to send.</param>
    [OperationContract]
    public void SendMessage(Message msg) {
        MessageDAL.SendMessage(msg);
    }
    }
    
    3 回复  |  直到 14 年前
        1
  •  0
  •   Jeremy McGee    14 年前

    你需要一个 [ServiceContract] 类的属性,或者它需要实现一个具有 [服务合同] 属性和在此处定义的服务方法标记为 [OperationContract] 属性。

    您可能会发现,创建一个简单的“灰色屏幕”Windows窗体应用程序可以更容易地诊断这样的问题。

        2
  •  0
  •   James Bloomer    14 年前

    如果您只是使用WCF将一些数据导入Silverlight,那么可能值得一看。 WCF RIA Services 这将为您构造WCF服务,并将您的实体公开给客户端Silverlight。

        3
  •  0
  •   David Hay    14 年前

    您的服务引用配置是什么样子的?请记住,Silverlight只能使用HTTP绑定来使用WCF服务。