Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从ASP.Net写入iSeries文件共享_C#_Asp.net_Ibm Midrange_Fileshare - Fatal编程技术网

C# 如何从ASP.Net写入iSeries文件共享

C# 如何从ASP.Net写入iSeries文件共享,c#,asp.net,ibm-midrange,fileshare,C#,Asp.net,Ibm Midrange,Fileshare,我已经编写了一个asp.net Web应用程序,它将文件写入iSeries文件共享上的某个位置。 路径如下所示:\IBMServerAddress\Filepath 这段代码在我的本地计算机上完美地执行,但在部署到我的(windows)Web服务器时失败 我知道我可能需要做一些模拟来验证对IFS的访问,但我不确定如何继续 以下是我正在使用的代码: string filepath = "\\\\IBMServerAddress\\uploads\\"; public int SaveTo

我已经编写了一个asp.net Web应用程序,它将文件写入iSeries文件共享上的某个位置。 路径如下所示:\IBMServerAddress\Filepath

这段代码在我的本地计算机上完美地执行,但在部署到我的(windows)Web服务器时失败

我知道我可能需要做一些模拟来验证对IFS的访问,但我不确定如何继续

以下是我正在使用的代码:

string filepath = "\\\\IBMServerAddress\\uploads\\";

    public int SaveToDisk(string data, string plant)
    {
       //code for saving to disk
       StreamWriter stream = null;

       stream = File.CreateText(filepath + plant + ".txt"); // creating file
       stream.Write(data + "\r\n"); //Write data to file

       stream.Close();

       return 0;
   }
同样,此代码在我的本地计算机上完美执行,但在部署到我的Windows Web服务器时不起作用-对文件路径的访问被拒绝

谢谢你的帮助

编辑:我尝试添加与IFS用户具有相同凭据的网络帐户,在IIS7上创建了UNC路径(iseries)以映射网络驱动器(使用相同凭据)-但收到以下错误:

对路径“iseries”的访问被拒绝


我对Windows的理解是,通常情况下,服务不能像用户运行的程序那样访问标准网络共享

因此,首先要看您是否可以从web服务器成功写入windows文件共享

假设这样做有效,您将需要以下两种方式之一才能写入IBM i share。
1) IBM i用户ID和密码,该ID和密码与正在运行进程的用户ID和密码相匹配
2) 在IBM i Netserver上配置的“来宾帐户”


如果使用Windows和IBM i都支持的基于Linux/UNIX的网络文件系统(NFS),您可能会更走运。

Charles,感谢您的回复。我可以远程访问我的Web服务器并访问iserver文件共享(使用我的uid和pw)。不幸的是,我们公司选择了Windows和IBM,我将尝试您的建议并报告。再次感谢。客人帐户的想法可能是最简单的解决方案。如果您使用的是特定的用户id和密码,那么我建议在服务器启动时运行netuse命令来映射驱动器号。NET USE命令可以接受用户id和密码。NET USE Y:\\IBMServerAddress\uploads password\u goes\u here/USER:IBMServerAddres\userid\u goes\u here。我建议不要使用/PERSISTENT标志,因为我看到了该标志和Windows到AS400映射的奇怪行为。嘿,Tracy,我在我的Web服务器上成功地通过Net Use命令进行映射,接下来,我尝试在服务器上运行webapp,但收到了以下错误消息:找不到路径“Y:\”的一部分(它存在!)@Wîlliam ChristopherÄlexander
不幸的是,我们公司选择了Windows和IBM,
Windows和IBM i都可以支持UNIX风格的NFS。ibmi支持它作为标准。Windows可能需要安装支持。嘿@Charles,谢谢你的介绍。我只需要创建一个与我的应用程序池相匹配的用户id,我使用IIS Manager>Application Pool找到了这个应用程序池。