我正在建立一个需要登录的公共网站,到目前为止我一直在使用 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