拒绝访问 - 使用Silverlight在Microsoft Server中生成目录

时间:2014-05-21 12:38:09

标签: c# web-services silverlight

我搜索了互联网,似乎找不到我的问题的答案。我还通过stackoverflow进行了彻底搜索,这可能有助于我提出一个更好的问题。

我在C#中使用Web服务创建了一个应用程序,它在Silverlight中运行。 我的问题是应用程序必须创建一个具有相对路径的目录。本地它可以工作,但当我上传到Microsoft Server时,它不会创建一个目录。

它说: 不允许文件操作。访问路径:' c:/ inetpub / wwwroot /...&# 39;被拒绝。

我使用这行代码进行创建: Directory.CreateDirectory(System.Web.HttpContext.Current.Server.MapPath(" TEMP /&#34);

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

所以我真的不知道在哪里看。


@Update - 22/05/2014 - 14:29

我已经删除了所有代码,只保留了一个按钮和一个事件处理程序的创建目录函数: Directory.CreateDirectory("路径&#34);

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

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

非常欢迎任何提示!

1 个答案:

答案 0 :(得分:0)

我找到了问题的解决方案!

以下是错误的: 我的silverlight应用程序由两部分组成。 Web服务和客户端;

  • Web服务作为用户执行:IUSR,它拥有服务器的完全权限。
  • 客户端以用户身份执行:DefaultAppPool。

问题在于,无法轻易地为DefaultAppPool用户授予权限。如果尝试以默认方式授予权限,则在地图设置中,无法找到DefaultAppPool用户。

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

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

有关此内容的更多详细信息,请查看以下链接: http://eufuckingreka.wordpress.com/2013/02/12/granting-defaultapppool-permissions-to-a-direction-on-windows-server-2008/