この質問は、 「DLL がリモート サーバーに配置されている場合、public static クラスを初期化できません」から派生したものです。最初は Powershell で詳細なスタック トレースを取得できませんでしたが、後でそれを行う方法を見つけたときに、質問が正確ではなく、新しい質問である可能性があることに注意してください。
ネットワーク共有フォルダーに DLL があり、 を使用して PowerShell にインポートした後Import-Module
、DLL のメソッドを呼び出すと、次のエラーが表示されます。
Configuration.AppConfiguration の型初期化子が例外をスローしました
TypeName : InsightDSL.DSLConfiguration.AppConfiguration
メッセージ : 'InsightDSL.DSLConfiguration.AppConfiguration' の型初期化子が例外をスローしました。
データ : {}
InnerException : System.Configuration.ConfigurationErrorsException: 構成ファイルの読み込み中にエラーが発生しました: パラメーター 'exePath' が無効です。パラメーター名: exePath ---> System.ArgumentException: パラメーター 'exePath' が無効です。パラメーター名: System.Configuration.ClientConfigPaths..ctor の exePath(String exePath, Boolean includeUserConfig) at System.Configuration.ClientConfigurationHost.get_ConfigPaths() at System.Configuration.ClientConfigurationHost.GetStreamName(String configPath) at System.Configuration.BaseConfigurationRecord.InitConfigFromFile () --- 内部例外スタック トレースの終了 --- System.Configuration.ConfigurationSchemaErrors で。
TargetSite : Int32 get_TimeoutValue()
StackTrace : InsightDSL.DSLConfiguration.AppConfiguration.get_TimeoutValue() で InsightDSL.SetInsightConnection.SetEnvironment() で InsightDSL.SetInsightConnection.ProcessRecord() で System.Management.Automation.CommandProcessor.ProcessRecord() で
クラスに対して例外がスローされます。
namespace Configuration
public static class AppConfiguration
{
private static Configuration Configuration = ConfigurationManager.OpenExeConfiguration(new Uri(Assembly.GetExecutingAssembly().CodeBase).AbsolutePath);
public static string name {...}
public static int timeout {...}
}
DLL をローカル フォルダーにコピーすると、エラーは発生せず、すべて正常に動作しますが、そのリモートの場所では動作しません。