我为我们的几个实体创建了一个OData服务,在我的开发人员机器(WinXP)上,一切都像它应该的那样,这是我在访问服务时得到的:
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<service xml:base="http://localhost:2332/ContactOData.svc/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app" xmlns="http://www.w3.org/2007/app">
<workspace>
<atom:title>Default</atom:title>
<collection href="Client">
<atom:title>Client</atom:title>
</collection>
<collection href="Vehicle">
<atom:title>Vehicle</atom:title>
</collection>
<collection href="Contact">
<atom:title>Contact</atom:title>
</collection>
</workspace>
</service>
现在我将该服务部署到测试服务器(Win2K3)后,我的所有实体都消失了:
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<service xml:base="http://dev-cont2011b/ContactOData/ContactOData.svc/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app" xmlns="http://www.w3.org/2007/app">
<workspace>
<atom:title>Default</atom:title>
</workspace>
</service>
事件日志中没有任何错误消息。我的连接字符串是正常的(我使用一个简单的test.aspx
页面对其进行了测试,该页面从数据库中取出并在页面上显示它==&gt;这是有效的)。
当我手动输入其中一个实体(客户端)的网址时,这就是我得到的:
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<code></code>
<message xml:lang="nl-BE">Resource not found for the segment 'Client'.</message>
</error>
.NET Framework 3.5安装在该服务器上。我运行了所有更新。
在过去的几个小时里,我一直在敲打这个。我不知道我还能做什么或测试。
有什么建议吗?
答案 0 :(得分:1)
解决方案是安装此更新:
显然,默认情况下,这个不包含在Windows更新中。你必须手动运行它。
这是必需的,因为我更改了默认的InitializeService
方法,因此需要DataServiceConfiguration
代替IDataServiceConfiguration
:
public static void InitializeService(DataServiceConfiguration config)
{
config.SetEntitySetAccessRule("*", EntitySetRights.AllRead);
config.DataServiceBehavior.MaxProtocolVersion = System.Data.Services.Common.DataServiceProtocolVersion.V2;
config.SetEntitySetPageSize("*", 20);
}
如果要启用服务器端分页(SetEntitySetPageSize
)(以及其他),则需要这样做。
答案 1 :(得分:0)
新尝试:
这是一个RESX问题
<message xml:lang="nl-BE">Resource not found for the segment 'Client'.</message>
它正在尝试查找名称为Client的nl-BE转换。