我正在尝试让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);
}
}
答案 0 :(得分:0)
如果您只是使用WCF将一些数据导入Silverlight,那么可能值得查看构建WCF服务的WCF RIA Services,以便将您的实体公开给客户端Silverlight。
答案 1 :(得分:0)
您的服务参考配置是什么样的?请记住,SilverLight只能使用http绑定来使用WCF服务。
答案 2 :(得分:0)
您需要在类上具有[ServiceContract]
属性,或者需要实现具有[ServiceContract]
属性的接口,并且其中定义的服务方法标记为[OperationContract]
属性。
您可能会发现创建一个简单的“灰色屏幕”Windows窗体应用程序可以更容易地诊断出这样的问题。