我正在开发一个小型即时消息应用程序,它在服务器端使用少量DomainServices。尝试访问域服务URL,我遇到以下错误:
“ContractDescription'AppInitService'的操作为零;合同必须至少有一个操作”。
域名服务网址是这样的: http://givemeword.net/chat/Services/IM-Chat-UI-Web-DomainServices-AppInitService.svc
您可以在下面找到域服务类:
namespace Chat.UI.Web.DomainServices
{
[EnableClientAccess()]
public class AppInitService : DomainService
{
private System.Security.Principal.IPrincipal _user;
private readonly Chat.UI.Web.Services.AppInitService _appInitService;
public AppInitService()
{
_appInitService = new Chat.UI.Web.Services.AppInitService();
}
public InitUserSettingsDTO InitUserSettings(Guid userId)
{
var initUserSettingsDTO = new InitUserSettingsDTO();
return initUserSettingsDTO;
}
}
}
如您所见,我使用复杂类型作为域服务唯一功能的返回类型。
我无法弄清楚为什么在我测试Windows Server 2012(不是开发机器,只是用于测试的虚拟机)或我的开发机器上运行时没有任何问题,但在托管帐户上它提升了上面的错误。
有没有人对此有任何想法?
谢谢
答案 0 :(得分:1)
尝试将[Invoke]属性添加到InitUserSettings方法:
[Invoke]
public InitUserSettingsDTO InitUserSettings(Guid userId)
{
var initUserSettingsDTO = new InitUserSettingsDTO();
return initUserSettingsDTO;
}
确保您的web.config按照此处所述进行设置:http://msdn.microsoft.com/en-us/library/ff426912(v=vs.91).aspx
答案 1 :(得分:0)
由于这种奇怪的情况以及我从网络托管公司获得的低支持而感到恼怒,我和其他网络提供商尝试过同样的事情。正如我所想的那样,这次工作没有任何问题,所以我认为原始提供商对WCF RIA服务(或者其他未识别的问题)的支持不足是正确的。