2010-03-13 151 views
3

我有一个winforms,它连接机智的web服务。访问被拒绝在webservice

web服务具有创建文件夹

Directory.Create(path); 

Webservice的是公司服务器的方法,并且该文件夹必须我在出公司的另一张光盘创建。

当我调用这个方法,我得到异常"Access denied to path..."

当Web服务在我的电脑一切都运行就OK。

我可以完全访问此网络磁盘。

但是如何设置完全访问我公司的服务器?

当我检查这个方法:

[WebMethod] 
     public string GetNameOfUser() 
     { 
      return WindowsIdentity.GetCurrent().Name; 
     } 

我得到没有目录指令的webMethods的<string>NT AUTHORITY\NETWORK SERVICE</string>

休息正常工作

编辑结构

计算机A是在域和有跑赢模式

服务器A:有正在运行Web服务

网盘:有有重要的文件夹的WinForms应用程序

是的,我们有一个domain.Computer一个访问网络磁盘。

回答

2

据我所知,您的应用程序会尝试创建一个文件夹,该文件夹驻留在与Web应用程序不同的服务器上。

您的Web应用程序正在本地帐户NT AUTHORITY\NETWORK SERVICE下运行。为了访问网络共享,您需要在两台计算机上可用的帐户下运行它,例如域帐户。

如果Web服务器与网络共享服务器都是一个域,您可以:

  1. 创建的域帐户
  2. 要授予父文件夹的帐户写访问创建新文件夹
  3. 使应用程序池的域帐户下运行Web服务器上

这应该让你的Web应用程序的其他服务器上创建foldera 。

+0

你可以给任何提示如何处理第3点?我不知道 – user278618

+0

这是IIS上的一个设置。如果您使用的是IIS6,请查看http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/f05a7c2b-36b0-4b6e-ac7c-662700081f25.mspx?mfr=true。对于IIS7,请查看http://technet.microsoft.com/en-us/library/cc771170(WS.10).aspx –

0

当你在你自己的机器上运行你的网络应用时,它在你自己的账户上工作,因此它可以创建目录。

在服务器上,应用程序在权限非常低的帐户下运行。 如果要在特定的固定目录下创建这些新目录,则可以允许该服务器帐户修改该特定目录。