我开发了一个运行良好的WCF数据服务,我可以完成我想要的所有操作。
我开发了一个小型的c#客户端来测试所有功能:添加,删除,修改,检索数据。
我的visual studio服务器上的一切正常,但是一旦我在IIS服务器上:
当我尝试编辑数据时,我收到此错误:
System.Data.Services.Client.DataServiceRequestException未处理
消息= Une erreur s'est produite lors du traitement de cette requê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:\工作区\ 10067.GfK
Telecontrol.TOM \ Release \ V3.1 \ WSTester \ Program.cs:ligne 90
àWSTester.Program.Main(String [] args)dans d:\工作区\ 10067.GfK Telecontrol.TOM \ Release \ V3.1 \ WSTester \ Program.cs:ligne 23
àSystem.AppDomain._nExecuteAssembly(RuntimeAssembly assembly,String [] args)
àSystem.AppDomain.ExecuteAssembly(String assemblyFile, 证据assemblySecurity,String [] args)
àMicrosoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
àSystem.Threading.ThreadHelper.ThreadStart_Context(Object 状态)
àSystem.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback回调,对象状态,布尔值 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 - 未经授权:由于无效而拒绝访问 凭据。
。内容容器{背景:#FFF;宽度:96%;边距:8像素;填充:10px的;位置:相对;} - >
服务器错误
401 - 未经授权:由于无效,访问被拒绝 凭证。
您无权查看此目录或页面 使用您提供的凭据。
源= System.Data.Services.Client
的StatusCode = 401
堆栈跟踪:
àSystem.Data.Services.Client.DataServiceContext.SaveResult.d__1e.MoveNext()
InnerException:
这很奇怪,因为我在WCF数据服务中拥有所有权利(并且它适用于visual studio),而且我在IIS中处于匿名模式,所以我应该拥有运行此查询的所有权利。 IIS_USR对Web文件夹有完全控制,所以我真的看不出可能出现什么问题
答案 0 :(得分:6)
我只是通过对WCF文件夹的“IUSR”帐户进行“完全控制”来修复我的问题。这就是我做的所有工作。
答案 1 :(得分:2)
尝试将应用池的模拟功能用于具有权限的用户。我过去使用IIS 7的默认AppPoolIdentity
功能遇到了很多问题,并且通常将其分配给用户设置用于此目的或将其设置为使用网络服务。
池很可能没有正确执行的权限。
答案 2 :(得分:2)
我让它与自定义用户一起运行,现在它可以运行,所以如果您遇到此问题,可以在IIS服务器上尝试以下操作: