0

我的服务器机器包括:

  1. IIS 7。
  2. 窗口服务器 2008。
  3. 网络驱动器映射为 Linux 机器的 Z 驱动器。
  4. 托管在服务器计算机上的 ASP.NET MVC 3 应用程序。

问题:

我已经构建了 asp.net mvc 3 应用程序,该应用程序可以将多个文件上传到本地驱动器,但无法上传到服务器机器的网络驱动器(在我的情况下为 Z:/)。它显示错误:

Could not find a part of the path 'Z:\uploadfolder\sdlkfjsdl.wav'.

然后,我检查了网络服务用户没有完全控制或写入权限的文件夹 (uploadfoler) 安全选项。这里的问题是我无权为 NETWORK SERVICE 用户添加权限,并且网络驱动器属于 LINUX 机器。

在寻找替代解决方案时,我发现了一个叫做模拟的概念。我对这个概念完全陌生。这能够解决我在我的场景中的问题吗?或者,还有其他替代解决方案吗?

4

2 回答 2

1

您的应用程序应在单独的 IIS 应用程序池中运行。在 IIS 中,您可以将用户分配到应用程序池。此用户应具有对网络驱动程序的写入权限。

请参阅http://technet.microsoft.com/en-us/library/cc753842(v=ws.10).aspx

于 2013-01-16T11:11:37.720 回答
0

好的,Z:\ 是您的网络驱动器,但它是否位于托管 IIS 的机器上,没有任何网络驱动器映射?如果它在另一台机器上,您需要使用 UNC 路径(即 \server\path\folder\filename.ext),因为运行 IIS 的用户不会映射它。

您不会将用户“添加”到应用程序池...您将创建一个显式应用程序池,该应用程序池作为命名用户而不是网络服务或应用程序池标识运行。创建应用程序池时,您可以指定运行它的用户。对于特定版本的 IIS,您可以找到大量相关信息。

此命名用户需要权限才能写入/读取您配置的 UNC 路径。

于 2013-01-16T11:52:17.193 回答