C# 拒绝访问-使用Silverlight在Microsoft服务器中生成目录

C# 拒绝访问-使用Silverlight在Microsoft服务器中生成目录,c#,web-services,silverlight,C#,Web Services,Silverlight,我在网上搜索过,似乎找不到我问题的答案。我还彻底搜索了stackoverflow,这可能会帮助我提出一个更好的问题 我已经用C#中的webservices制作了一个应用程序,它正在Silverlight中运行。 我的问题是应用程序必须创建一个具有相对路径的目录。它在本地工作,但当我将其上载到Microsoft Server时,它不会创建目录 它说: 不允许文件操作。访问路径:“c:/inetpub/wwwroot/…”被拒绝 我使用这行代码进行创建: CreateDirectory(System

我在网上搜索过,似乎找不到我问题的答案。我还彻底搜索了stackoverflow,这可能会帮助我提出一个更好的问题

我已经用C#中的webservices制作了一个应用程序,它正在Silverlight中运行。 我的问题是应用程序必须创建一个具有相对路径的目录。它在本地工作,但当我将其上载到Microsoft Server时,它不会创建目录

它说: 不允许文件操作。访问路径:“c:/inetpub/wwwroot/…”被拒绝

我使用这行代码进行创建: CreateDirectory(System.Web.HttpContext.Current.Server.MapPath(“TEMP/”)

在应用程序运行的地图上,我已授予public和IIS用户所有权限。但它仍然会给出相同的错误。除此之外,我还在.Net中编写了一小段独立代码来创建目录。这是为了测试访问权限,这是可行的

所以我真的不知道去哪里找


@更新-22/05/2014-14:29 我已经删除了所有代码,只保留了一个带有一个按钮和一个事件处理程序的create directory函数: CreateDirectory(“路径”)

我注意到相对路径在Silverlight中不起作用(他似乎认为浏览器(即Chrome)的路径是父路径,而不是应用程序的路径)

其他一些发现是,如果我输入绝对路径。在本地它可以工作,但当我上传到服务器时,它再次表示拒绝访问


欢迎提供任何提示!

我已经找到了问题的解决方案

以下情况出现了问题: 我的silverlight应用程序由两部分组成:Web服务和客户端

  • Web服务以用户身份执行:IUSR,它在服务器上拥有完全权限
  • 客户端以用户身份执行:DefaultAppPool
这方面的问题是,无法轻松授予DefaultAppPool用户权限。如果尝试以默认方式授予权限,则在映射设置中找不到DefaultAppPool用户

授予DefaultAppPool完全权限的正确方法是转到命令控制台并键入:

icacls c:\“映射路径”/grant“IIS APPPOOL\DefaultAppPool”:(F)

有关此操作的更多详细信息,请查看以下链接:

您为测试而创建的第二个应用程序允许您在同一路径c:/inetpub/wwwroot/?上创建目录,或者您在同一路径的不同路径上创建了目录。对于该应用程序,我尝试了以下操作:使用绝对路径在本地,使用绝对路径在服务器上,以及使用相对路径在服务器上。请尝试这是一个Directory.CreateDirectory(Path.Combine(AppDomain.CurrentDomain.BaseDirectory,“TEMP”);我已经试过了。同样,它在本地工作,但在服务器上不工作!(很高兴看到另一个方法并得到类似的结果)