1

我正在建立一个需要登录的公共网站,到目前为止我一直在使用 asmx-services。现在我想尝试 Wcf 数据服务并通过 jQuery 查询服务。

在本地主机上一切正常,但是一旦我发布我的网站,我就会收到此错误:

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

我已经使用实体数据模型映射了我的数据库,然后我创建了一个 wcf 数据服务,它连接到我的数据模型,如下所示:

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);

    }
}

将我的实体数据模型映射到我的数据库时指定 MyEntities 的位置。

正如我所写,它在 localhost 上一切正常,我可以像这样查询我的服务:

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

但是当我使用已发布的版本时,我得到了 401 错误。(直接在浏览器中编写查询时出现相同的错误)

我真的很喜欢使用 Wcf 服务,所以我真的需要帮助才能完成这项工作,我曾尝试使用 Google,但没有运气。我是否需要在我的服务或 web.config 或 IIS 中进行任何配置?

我使用 IIS 7.0 和 asp.net 4.0

4

2 回答 2

0

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

这是在 IIS 到达您的服务器端 c# 代码之前来自 IIS。

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

于 2010-12-21T21:01:14.570 回答
0

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

结案。

于 2010-12-21T22:44:33.513 回答