簡體   English   中英

在IIS上嘗試我的WCF數據服務時得到“401 - 未經授權”

[英]Got a “401 - Unauthorized” when trying my WCF Data service on IIS

我開發了一個運行良好的WCF數據服務,我可以完成我想要的每個操作。

我開發了一個小型的c#客戶端來測試所有功能:添加,刪除,修改,檢索數據。

在我的visual studio服務器上一切正常,但是一旦我在IIS服務器上:

  • 我可以添加/檢索數據
  • 我無法編輯數據

當我嘗試編輯數據時,我收到此錯誤:

System.Data.Services.Client.DataServiceRequestException未處理
消息= Une erreur s'est produite lors du traitement decetterequête。
來源= System.Data.Services.Client
堆棧跟蹤:
àSystem.Data.Services.Client.DataServiceContext.SaveResult.HandleBatchResponse()
àSystem.Data.Services.Client.DataServiceContext.SaveResult.EndRequest()
àSystem.Data.Services.Client.DataServiceContext.SaveChanges(SaveChangesOptions選項)
àSystem.Data.Services.Client.DataServiceContext.SaveChanges()
àWSTester.Program.ModifySomeThings(實體實體)dans D:\\ Workspace \\ 10067.GfK
Telecontrol.TOM \\ Release \\ V3.1 \\ WSTester \\ Program.cs:ligne 90
àWSTester.Program.Main(String [] args)dans D:\\ Workspace \\ 10067.GfK Telecontrol.TOM \\ Release \\ V3.1 \\ WSTester \\ Program.cs:ligne 23
àSystem.AppDomain._nExecuteAssembly(RuntimeAssembly assembly,String [] args)
àSystem.AppDomain.ExecuteAssembly(String assemblyFile,Evidence assemblySecurity,String [] args)
àMicrosoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
àSystem.Threading.ThreadHelper.ThreadStart_Context(對象狀態)
àSystem.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback callback,Object state,Boolean ignoreSyncCtx)
àSystem.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback回調,對象狀態)
àSystem.Threading.ThreadHelper.ThreadStart()
的InnerException:
System.Data.Services.Client.DataServiceClientException
消息=嚴格// EN“”http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd“>



401 - 未授權:由於憑據無效,訪問被拒絕。

.content-container {background:#FFF; width:96%; margin-top:8px; padding:10px; position:relative;} - >



服務器錯誤




401 - 未授權:由於憑據無效,訪問被拒絕。


您無權使用您提供的憑據查看此目錄或頁面。





來源= System.Data.Services.Client
的StatusCode = 401
堆棧跟蹤:
àSystem.Data.Services.Client.DataServiceContext.SaveResult.d__1e.MoveNext()
的InnerException:

這很奇怪,因為我在WCF數據服務中擁有所有權利(並且它適用於visual studio),而且我在IIS中處於匿名模式,所以我應該擁有運行此查詢的所有權限。 IIS_USR對Web文件夾有完全控制,所以我真的不知道可能是什么問題

我只是通過對WCF文件夾的“IUSR”帳戶進行“完全控制”來修復我的問題。 這就是我所做的一切,並且有效。

嘗試將應用程序池的模擬功能用於具有權限的用戶。 我過去使用IIS 7的默認AppPoolIdentity功能遇到了很多問題,並且通常將其分配給用戶設置用於此目的或將其設置為使用networkservice。

池很可能沒有正確執行的適當權限。

我讓它與自定義用戶一起運行,現在它可以工作,所以如果你有這個問題,你可以在IIS服務器上嘗試以下方法:

  1. 創建一個Windows用戶;
  2. 在WCF數據服務文件夾中賦予它讀/寫/修改/執行/ ...權限;
  3. 使用.NET 4,集成模式和此用戶創建新的應用程序池;
  4. 在網站身份驗證上,僅啟用匿名模式,並將用戶設置為“應用程序池標識”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM