我正在開發一個小型即時消息應用程序,它使用服務器端的幾個DomainServices。嘗試訪問域服務URL時,遇到以下錯誤:WCF RIA服務域服務錯誤:ContractDescription具有零操作;合同必須至少有一個操作
「ContractDescription'AppInitService'具有零操作;合同必須至少有一個操作」。
域名服務URL是這個: 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(不是開發機器,只是用於測試的虛擬機)或我的開發機器上運行沒有任何問題,而是在其提升的主機帳戶上上面的錯誤。
有沒有人有這方面的想法?
謝謝
感謝您的回覆。我會檢查提供的網址。問題仍然存在:爲什麼它在我的機器上工作?我懷疑它是沒有安裝在主機帳戶上的是WCF RIA Services V1.0 SP1或SP2。 – Razvan
服務響應的事實讓我覺得你的設置沒問題。 RIA服務旨在返回對象圖中的「實體」對象。如果您的dto沒有關鍵屬性,那麼它是一個poco,並且該服務方法需要使用invoke屬性進行修飾才能起作用。 –
再次感謝你羅布。 web.config一切都很好。將[Invoke]屬性添加到域類中的虛擬函數確實解決了訪問其Url的問題。但試圖訪問返回複雜類型的函數仍然導致客戶端的「未找到」錯誤。 – Razvan