2010-12-21 67 views
1

林建立一個公共網站,您需要登錄,我一直在使用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

回答

0

錯誤401是一個HTTP錯誤 - 拒絕訪問。

這是從IIS到達您的服務器端C#代碼之前。

如何解決它取決於您的身份驗證是什麼。但基本思想是請求必須包含足夠的認證信息才能使服務器接受請求。

0

我終於得到它的工作,指定的用戶沒有在磁盤上的讀取權限。有時它看起來很難但很簡單。

案件關閉。