我试图用SOAP和JSON公开现有的RIA服务。
在web.config,serviceModel一节中,我已经指出:
<system.serviceModel>
<domainServices>
<endpoints>
<add name="OData" type="System.ServiceModel.DomainServices.Hosting.ODataEndpointFactory, System.ServiceModel.DomainServices.Hosting.OData, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add name="Soap" type="Microsoft.ServiceModel.DomainServices.Hosting.SoapXmlEndpointFactory, Microsoft.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add name="Json" type="Microsoft.ServiceModel.DomainServices.Hosting.JsonEndpointFactory, Microsoft.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</endpoints>
</domainServices>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
在MyDomainService中有:
[Query(IsDefault=true)]
public IEnumerable<UserItem> GetUsers()
{
return this.ObjectContext.Users;
}我尝试了以下URL:
http://10.0.0.191:27070/Manager-Web-MyDomainService.svc/GetUsers
http://10.0.0.191:27070/Manager-Web-MyDomainService.svc/Soap/GetUsers
http://10.0.0.191:27070/Manager-Web-MyDomainService.svc/Json/GetUsers
http://10.0.0.191:27070/Manager-Web-MyDomainService.svc/OData/GetUsers
我得到的只是一页空白。
我启用了跟踪,并在日志中看到警告“配置评估上下文未找到”。
有人能帮我吗?
提前谢了,干杯,詹卢卡。
发布于 2011-02-25 18:47:37
好吧,我几乎把所有事情都解决了。我的配置是正确的。其他地方也有问题。让我分享我的发现:
首先,我发现OData在URL末尾需要一个'/‘。此外,我错误地认为有必要回忆服务URL,并在方法的末尾加上名称。有点像:http:///oData/。结果是,只要调用http:///oData/,我就可以得到所有预期的数据。
相反,Json不想要尾随'/‘。正确的网址是:http:///Json/。这一次有必要指出方法。我还开始更好地理解属性查询、调用等的含义。只有在具有属性HasSideEffect=false的情况下,调用修饰方法才会公开为JSON。
我仍然很难通过SOAP公开相同的方法。如果有人想贡献和帮助我,请随时在这里添加更多的信息。一旦我得到进一步的结果,我会发布更多的信息。
干杯,詹卢卡。
https://stackoverflow.com/questions/5119924
复制相似问题