从我的ASP.NET Web应用程序中将简单的文本文件写给IBM Iseries IF



所以我的工作的一部分是将文件写入iSeries ifs,或该路径尤其是 serveripaddress home test test test 我有一个ASP.NET Web应用程序可以执行此操作,这是我用来将简单的文本文件写入该目录的代码(C#(:

        string filename = @"\SomeIPAdresshometesttest.txt";
        byte[] file = Encoding.ASCII.GetBytes("hello world");
        FileStream fs = new FileStream(filename, FileMode.OpenOrCreate);
        fs.Write(file, 0, file.Length);
        fs.Close();

执行此代码时,该程序给了我"访问权限"。错误

例外详细信息:system.unauthorizedAccessexception:访问路径' someIpAddress home test test test.txt''被拒绝。

ASP.NET无权访问请求的资源。考虑授予对ASP.NET请求身份的访问权限...

我可以使用IBM UID和密码使用Windows File Explorer访问此目录 someipAddress home test,我也可以手动创建和编辑文本文件。

我知道这与授予对我的ASP.NET应用程序的访问有关,但我无法完全弄清楚我的ASP.NET应用程序,但我已经被困了几天了。p>让我知道您是否需要任何额外的信息。感谢您的帮助

两个解决方案。最佳实践。设置iSeries使用与网络上其他所有内容相同的域控制器。然后,它将知道请求访问的ASP.NET帐户并允许访问IFS。

在托管指向IFS的ASP.NET页面的计算机上设置映射驱动器。映射的驱动器将保存在保险库中。

感谢迈克·威尔斯(Mike Wills(带领我解决解决方案。这是我使用P/Invoke WNET连接连接到网络共享的代码,此处是此答案

DisconnectFromShare(@"\server-aDBFiles", true); //Disconnect in case we are currently connected with our credentials;
ConnectToShare(@"\server-aDBFiles", username, password); //Connect with the new credentials
if (!Directory.Exists(@"\server-aDBFiles"))
    Directory.CreateDirectory(@"\server-aDBFiles"+Test);   
File.Copy("C:Tempabc.txt", @"\server-aDBFiles");
DisconnectFromShare(@"\server-aDBFiles", false); //Disconnect from the server.

感谢伙计们的帮助。

我认为这就是您要寻找的。抱歉,我无法访问我现在知道有效的工作中的代码。这真的很简单,而且工作完美。

如果您想要我的工作代码,请告诉我,明天我会拉。

更新:对不起,我没有提前发布我的代码,我们在工作中被淹没了。

NetworkCredential nc = new NetworkCredential("user", "password", "domain");
using (new NetworkConnection(@"\serverdirectory1directory2", nc))
{
    // your IO logic here
}

最新更新