1

C:\IBM\UniDK\uonet\samples\C#ディレクトリにパッケージ化されているコンピュータで実行されている例を取得しようとしています。プロジェクトの名前はですUniSelectList

この正確なコードは、1台のマシンで完全に機能します。

最初はDLLファイルへの参照が間違っているのではないかと思いましたがIBMU2.UODOTNET、動作中のマシンからDLLファイルを取得しても実行できません。

各マシンは同じネットワーク上にあり、すべてのファイアウォールが無効になっています。

これは、私たちが受け取っている例外メッセージです。

SocketExceptionがキャッチされました!!!Systemそのようなホストは不明です[IBMU2][UODOTNET --UNIRPC] [ErrorCode = 81011]ホスト名が無効であるか、ホストが応答していませんソース:UniRPCConnectionクラスメソッド:Void set_Host(System.String) IBMU2.UODOTNET.UniRPCConnection.set_Host(String value)でIBMU2.UODOTNET.UniSession.Connect()で

using System;
using IBMU2.UODOTNET;

namespace IBMU2.Samples.UniSelectListSample
{
    /// <summary>
    /// Summary description for Class1.
    /// </summary>
    class UniSelectListSample
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main(string[] args)
        {
            UniSession us1=null;

            try
            {

                us1 = UniObjects.OpenSession("92.0.0.1","username","password","play/PLAYSMD","uvcs");

                UniSelectList sl = us1.CreateUniSelectList(2);

                // Select UniFile
                UniFile fl = us1.CreateUniFile("SLCUST");
                sl.Select(fl);

                bool lLastRecord = sl.LastRecordRead;

                while(!lLastRecord)
                {
                    string s = sl.Next();
                    Console.WriteLine("Record ID:" + s);
                    lLastRecord = sl.LastRecordRead;
                }

            }
            catch(Exception e)
            {
                if(us1 != null && us1.IsActive)
                {
                    UniObjects.CloseSession(us1);
                    us1= null;
                }
                Console.WriteLine("");
                string s = "Connection Failed : " + e.Message;
                Console.WriteLine(s);
            }
            finally
            {
                if(us1 != null && us1.IsActive)
                {
                    Console.WriteLine("");
                    string s = "Connection Passed";
                    Console.WriteLine(s);
                    UniObjects.CloseSession(us1);
                }

                Console.ReadLine();

            }
        }
    }
}

IPアドレスにpingを実行すると、応答を受け取ることができます。

参照がありませんか?

4

1 に答える 1

0

私はなんとか問題の根底にたどり着きました。IBMU2.UODOTNET.dllファイルを正しく参照していませんでした。

自分のマシンに正しく登録されていなかったからだと思います。

これが、DLLを自分のマシンに正しく登録する方法です(少し調査した後です!)。

  1. グローバルアセンブリキャッシュツール(Gacutil.exe)のドキュメントをここからダウンロードします

  2. コマンドプロンプトを開く

  3. cdgacutil.exeファイルを含むディレクトリにUODOTNET.DLL

  4. コマンドラインに次のように入力します。

    gacutil.exe -i uodotnet.dll / nologo

返されるメッセージは、「キャッシュに正常に追加されました」という内容でした。

于 2011-11-04T12:35:04.003 に答える