-->

C#不能创建Unisys的大型机Windows共享文件EBCDIC(c# Cannot create

2019-09-28 12:49发布

我试图上传用户在asp.net网站所产生的Unisys的大型机数据。 我的客户决定,他们要我直接加载数据到主机优利窗口共享,而不是使用FTP上传文件。 FTP通常做ASCII和EBCDIC之间的转换。

问题是,大型机看到文件作为ASCII不管我是否已经编码的文件内容EBCDIC。

测试代码是在这里:

        string dataToWrite = "ACHR0000000000575TEST EBCDICPAYEE             8899007500038159 0000001000160330 ".ToUpper();
        Encoding ebcdic = Encoding.GetEncoding("IBM037");

        List<byte> bytes = new List<byte>();
        bytes.AddRange(Encoding.Convert(Encoding.ASCII, ebcdic, Encoding.ASCII.GetBytes(dataToWrite)));


        using (var unc = new UNCAccessWithCredentials())
        {
            // get access to the reconciliation file share using credentials in the config
            string path = @"\\xxx\RECONDEV";
            unc.NetUseWithCredentials(path, "XXX","", "XXX");
            string fileName = Path.Combine(path, "ACH");
            using (var binWriter = new BinaryWriter(File.OpenWrite(fileName)))
            {
                binWriter.Write(bytes.ToArray());
                binWriter.Flush();
                binWriter.Close();
            }
        }

问题
1)我应该创建该文件为ASCII,然后让大型机作业中调用一个实用程序将文件转换EBCDIC? 如果是这样,什么是实用程序的名称? 大型机OPS不知道的人。

2)是否有某种方式来实际创建.NET中的EBCDIC文件? 该EBCDIC编码工作,但我相信,文件类型是不同的,我一直没能找出什么。

我真的还没有与大型机在20年里让我从我的深度作出的任何事情。

提前致谢。 克里斯

Answer 1:

仅供参考,顾问建议我们使用一个叫做MCPCopy实用程序来复制和文件从ASCII流转换EBCDIC为我们复制文件到主机的份额。 该实用程序可以安装作为NXExtend的一部分。 由ASP.Net站点使用的命令行是:

C:\ WINDOWS \ MCPCopy.exe {的SourceFile} {DestinationFile} / Y / Z:SR / d:80

希望这可以帮助



文章来源: c# Cannot create EBCDIC file on Unisys Mainframe Windows Share
标签: c# ebcdic