我在IISServer上运行我的WebApplication 我创建了静态类:
public class JMSInformationGetterUAT
{
private static String userName = "123";
private static String password = "321";
public static String runningJMS = "";
private static Admin adminConnection = null;
public static void Init()
{
try
{
String serverUrl = "tcp://localhost:1232";
adminConnection.CommandTimeout = 500;
adminConnection = new Admin(serverUrl, userName, password);
runningEMS = "JMS1Instance";
}
catch
{
EMSCriticalFailure = true;
}
}
}
并将其添加到Global.asax.cs:
protected void Application_Start(object sender, EventArgs e)
{
JMSInformationGetterUAT.Init();
}
...当我使用JMSInformationGetterUAT.RunningJMS
时,我只会收到错误:
"对象引用未设置为对象的实例"。
在JMS端(该应用程序用于快速监控)我看到1毫秒连接然后没有 - 但是在adminConnection
方法填充的对象Init()
应保持连接。温我指的是这个对象它也是空的......
那么为什么这个对象不持久?它有静态前缀......
请帮帮我
答案 0 :(得分:2)
在实例化新管理员之前,您正在设置adminConnection的属性CommandTimeout。
adminConnection = new Admin(...)
需要在访问任何非静态属性之前发生。
答案 1 :(得分:0)
我在弗兰的建议后稍微改变了一下代码。 现在它起作用了:
public class JMSInformationGetterUAT{
private static String userName = "123";
private static String password = "321";
public static String runningJMS = "";
private static Admin adminConnection = new Admin("localhost:1234", userName, password);
public static void Init()
{
//some other logic i needed
} }