Wcf数据服务 - 401错误

问题描述:

林建立一个公共网站,您需要登录,我一直在使用asmx服务。现在我想尝试Wcf数据服务,并通过jQuery查询服务。Wcf数据服务 - 401错误

这一切工作正常,在本地主机上,但一旦我出版我的网站,我得到这个错误:

401 - Unauthorized: Access is denied due to invalid credentials. 

我一直在使用实体数据模型映射到我的数据库,然后我创建连接到一个WCF数据服务我的数据模型是这样的:其中MyEntities映射我的实体数据模型到我的数据库时指定

public class MyService : DataService<MyEntities> 
{ 
    // This method is called only once to initialize service-wide policies. 
    public static void InitializeService(DataServiceConfiguration config) 
    { 

     config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2; 

     config.SetEntitySetAccessRule("*", EntitySetRights.AllRead); 

    } 
} 

我写,这一切工作在本地主机上很好,我可以查询我的服务是这样的:

 $.ajax({ 
      type: "GET", 
      url: "/OData/MyService.svc/Groups", 
      data: "{}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (data) { 
//some logic 
}}); 

但是当我使用的发行版,我得到的401错误。 (我直接在浏览器中写入查询时出现同样的错误)

我真的是使用Wcf服务的绿色,所以我真的需要帮助来完成这项工作,我曾尝试谷歌,但没有运气。我是否需要在我的服务或web.config或IIS中执行任何配置?

即时通讯使用IIS 7.0和asp.net 4.0

+0

*现在我想尝试Wcf数据服务,而不是使用OData *:ahem .... WCF数据服务是微软具体的**实施**的OData ...... – 2010-12-21 20:07:37

+0

我明白了,正如我所说的,我在这个领域非常绿色。 – Andreas 2010-12-21 20:12:37

错误401是一个HTTP错误 - 拒绝访问。

这是从IIS到达您的服务器端C#代码之前。

如何解决它取决于您的身份验证是什么。但基本思想是请求必须包含足够的认证信息才能使服务器接受请求。

我终于得到它的工作,指定的用户没有在磁盘上的读取权限。有时它看起来很难但很简单。

案件关闭。