0

在我的 asp.net 应用程序中,我可以选择拍照,这些照片不应存储在托管服务器上,而应存储在另一台服务器上。(\192.168.1.103\ca\photos\ 我用这个代码

public void EstructuraReclamo(string Producto, string Poliza, string Sucursal,string Reclamo, string Item) {
string Mensaje = string.Empty;
string DirServidor = DireccionIP(ref Mensaje, "SCANDATOS", Sucursal, "RECLAMOS");           
try
{
    string DirReclamo =DirServidor + Producto + @"\" + Poliza + @"\Item" + Item + @"\" + Reclamo;
    if (!System.IO.Directory.Exists(DirReclamo)){
        System.IO.Directory.CreateDirectory(DirReclamo);
    }
    System.Data.DataTable dtSubdirectorios = ListaSubDirectorio(ref Mensaje, "SCANRECLAMO");
    foreach (System.Data.DataRow dr in dtSubdirectorios.Rows) { 
        string SubDir = DirReclamo + @"\" + dr["apa_glosa"].ToString();
        if (!System.IO.Directory.Exists(SubDir))
            System.IO.Directory.CreateDirectory(SubDir);
    }

}
catch (Exception ex){
    Mensaje = ex.Message.ToString();
}

但是没有创建文件夹?当我从 VS2010 执行程序时,创建了文件夹,但是当发布站点时,没有创建文件夹我该如何解决这个问题?

IIS 版本为 6.0

4

2 回答 2

2

尽管我不知道您目前是否遇到异常,但这几乎可以肯定是权限问题。IIS 将在尝试创建文件夹时发送运行应用程序池的凭据。这通常默认为NETWORK SERVICE.

查看运行应用程序池的用户,然后检查根文件夹的权限,并确保该用户具有Write访问权限。

一旦应用程序池用户拥有权限 - 你就很好了。

于 2013-06-13T16:34:42.277 回答
0

这将是一个权限问题,当您使用 Visual Studio 运行程序时,应用程序使用您自己的凭据运行,但是当站点在 IIS 中运行时,它将使用分配给应用程序池的任何帐户运行,默认情况下,这将是机器上的本地帐户,对远程服务器没有任何权限。

如果您使用模拟,您可以在远程服务器上设置一个具有相关权限的帐户,您的应用程序将可以访问这些远程文件夹/文件。

于 2013-06-13T16:38:07.183 回答