2016-12-14 9 views
0

私は社内の時間管理アプリケーションをかなりの期間使用しています。新しいバージョンを完成するたびに、アプリケーションを展開し、.exeと.pdbなどをネットワークサーバー上のランタイムフォルダにコピーします(Windows Server 2008 R2 Standardを実行し、重要な更新プログラムはすべてインストールされています)。従業員は、リモートデスクトップを通じてサーバーにアクセスし、ログオンし(統合ログインを使用して)、勤務時間を記録します。Powerbuilder 12.6 .NETエラー番号0、機能が見つかりません

アプリケーションの新しいバージョンがPFC version of error message(エラー番号0、機能が見つからない、0行目、それ以外はすべて空白)のエラーメッセージが生成された今年の10月中頃までうまくいきました。私の開発マシン(Windows 8.1 Pro、すべての重要な更新プログラムがIDE、.exeからインストールされている)、クリーンな仮想Windows 7のインストール(.NET Framework 4.0とVisual C++ 2010 Redistributableがインストールされている、ランタイムDLLを登録するために実行されるパッケージャなど)。サーバーと同僚の(Windows 10)マシンで前述のエラーメッセージが生成されます。

エラーは、ウィンドウ(フレームなど)を開こうとするとトリガーされたようです。私は、次の順序でメッセージボックスを使用してデバッグすることを試みた:

(アプリケーションマネージャオブジェクトののpfc_Open場合)

(populate sqlca from .ini, perform integrated logon, etc.) 

MessageBox("before frame", "before frame") 

OpenWithParm(w_frame, ls_user) 

MessageBox("after frame", "after frame") 

を「フレーム前」メッセージボックスが表示され、エラーメッセージが表示され、アプリケーション停止する。

アプリケーションはPFCを使用しますが、単純にウィンドウを開き、テキストボックスを表示する単純な非PFCアプリケーションは、同様の動作をします。メッセージボックスが開いている(w_window)の前に来ると、エラーメッセージ:basic hello world errorと停止します。

私はPowerbuilder .NET 12.6.0、Build 4108を使用しています(これは最新のEBFバージョンと思われます)。以前のバージョンのアプリケーションは引き続きサーバー上で動作します。特定の日付の後にコンパイルされたアプリケーションはサーバー上で動作しないようです。

ここで(システム言語がドイツ語で、私は英語にドイツ語の単語を翻訳しました)これらのアプリケーションのいずれかを開くしようとする試みの後PBTraceからの抜粋です:

Method: Void _init() 
Exception Type: System.MissingMethodException 
Exception Message: System.MissingMethodException: Method not found: "Void Sybase.PowerBuilder.WPF.PBWindow.set_RelevantSession(Sybase.PowerBuilder.WPF.PBSession)". 
    at c__w_window._init() 
    at c__w_window..ctor() in c:\work\pb126\hello_world_ohne_pfc.out\hello_world_ohne_pfc_w_window_w.cs:Line 0. 
Exception Source: hello_world_ohne_pfc 
Exception StackTrace: at c__w_window._init() 
    at c__w_window..ctor() in c:\work\pb126\hello_world_ohne_pfc.out\hello_world_ohne_pfc_w_window_w.cs:Line 0. 

私はエラーのドキュメントを見て私はオンラインで同じような問題の解決策を探しましたが、エラー番号0のいくつかの他のケースが見つかりましたが、エラーテキストは異なります。解決策には、エラーの原因となった行をコメントアウトすることが含まれていましたが、フレームウィンドウや他のウィンドウを開く必要があるため、実際にはこれはオプションではありません。明らかに見つからなかった特定の方法に関する情報も見つけられませんでした。

前述のとおり、問題を再現するために、新しいWindows 7をインストールした仮想マシンを作成しました。前提条件(.NET Frameworkなど)をインストールした後、私の時間管理アプリケーションと非PFC Hello Worldアプリケーションの両方が機能します。私たちはウイルス対策プログラム(F-Secure)をエラーの原因として除外しようとしました。そのため、F-Secureを仮想マシンにインストールし、すべての更新プログラムをインストールしましたが、両方のアプリケーションは正常に動作しました。また、すべての重要なWindows更新プログラムを仮想マシンにインストールすることでWindowsの更新プログラムを排除しようとしましたが、.NET Frameworkのセキュリティと品質のロールアップを含む重要な更新が行われても、アプリケーションは正常に動作します。仮想マシンでエラーを再現できませんでした。機能が停止した時点で変更されたことは、Windows Updateだけであると思うが、アプリケーションが最新のWindows 7仮想マシンで動作するため、エラーの原因とは思われない。

アップデートとはまだ関係がありますか? 10月中旬に大規模なイベントが発生しましたか?私は行方不明のものが他にありますか?

さらに詳しい情報が必要な場合は、お知らせください。ご注意いただきありがとうございます。ここで

+0

エラーは、ウィンドウのコンストラクタで発生します。プログラミングエラーです。それ以外の場合は、アプリケーションで使用する正しい.NETフレームワークがインストールされているかどうかを確認します。これが動作していない場合は、VB.NETやC#でアプリケーションをビルドして、もう一度やり直してください。 – user743414

+0

私はそれがプログラミングエラーではないと思います。ウィンドウとメッセージボックスだけで構成されるアプリケーションの場合でも起こります。私は明日、.NETフレームワークをチェックします。答えをありがとう! – SimonSharpe

答えて

1

は、私は問題を解決することができた方法は次のとおりです。

user743414の答えは私が代わりにWindows Updateまたは他のものの.NETフレームワークについて考えさせられました。いくつかの調査を行い、.NET Framework GACにSybase.Powerbuilder.WPF.dllがあることを確認しました。仮想マシンでは、2つの12.6 .NETランタイムパッケージャを実行しました.1つは前に作成し、もう1つはアプリケーションが動作を停止した時点以降に作成したものです。それぞれ、この.dllの異なるバージョンが登録されていました。 .dllの古いバージョンでは、私はエラーを再現することができたし、新しいバージョンで修正されました。そのことを念頭に置いて、新しいバージョンのランタイムパッケージャをターミナルサーバーで実行しました。ランタイムを削除して再インストールして再起動して、.dllの新しいバージョンが登録されていることを確認し、最後にそれを実行してアプリケーションを再実行しなければなりませんでした。

もう一度user743414さんに感謝します。

関連する問題