小编ejp*_*jpb的帖子

使用单一服务在Linux上测试Windows DOTNET服务

我正在尝试使用单一服务在Linux上运行Windows .NET-4.0服务.它不是用单声道或任何东西编译的.我不是100%它可行,但我想我可以尝试(二进制兼容等,似乎可行吗?).如我错了请纠正我.

我收到错误,它找不到一些dll.他们在系统中,但它没有找到它们.这是一个.

$ ldconfig -p | grep Posix
    libMonoPosixHelper.so (libc6,x86-64) => /usr/lib/libMonoPosixHelper.so
Run Code Online (Sandbox Code Playgroud)

我尝试添加路径等但没有变化.

$ MONO_LOG_LEVEL=debug mono-service MyService.exe --debug > output.log
Run Code Online (Sandbox Code Playgroud)

要么

$ MONO_PATH=/usr/lib MONO_LOG_LEVEL=debug mono-service MyService.exe --debug > output.log
Run Code Online (Sandbox Code Playgroud)

或LD_LIBRARY_PATH,这是空的,所以我试过

export LD_LIBRARY_PATH=/usr/lib
Run Code Online (Sandbox Code Playgroud)

在输出中总是这样:

Mono: DllImport attempting to load: 'libMonoPosixHelper.so'.
Mono: DllImport loading library: '/usr/lib/mono/gac/Mono.Posix/4.0.0.0__0738eb9f132ed756/libMonoPosixHelper.so'.
Mono: DllImport error loading library '/usr/lib/mono/gac/Mono.Posix/4.0.0.0__0738eb9f132ed756/libMonoPosixHelper.so: cannot open shared object file: No such file or directory'.
Mono: DllImport loading library: '/usr/lib/mono/gac/Mono.Posix/4.0.0.0__0738eb9f132ed756/libMonoPosixHelper.so'.
Mono: DllImport error loading library '/usr/lib/mono/gac/Mono.Posix/4.0.0.0__0738eb9f132ed756/libMonoPosixHelper.so: cannot open shared object file: No …
Run Code Online (Sandbox Code Playgroud)

c# linux mono .net-4.0 mono-service

7
推荐指数
1
解决办法
2808
查看次数

Task.Factory.StartNew在部署时不执行任务

我有一些代码在我安装它/在我自己的计算机上运行时,按预期工作,Windows 7,但是当我在其他服务器(2003和2008)上运行它时,它没有.代码来自我在Windows服务中使用的.NET4 WCF服务库.这是简单的.

public void monitorQueueAndDoStuff() {
  MonitorRetryQueue();
  MonitorMainQueue();                
}

private void MonitorMainQueue() {
  Log.Info("MonitorMainQueue called");
  Task.Factory.StartNew(() =>
  {
    Log.Info("new thread monitoring queue");
    // ...NMS stuff

        while (!stopped) {
          ITextMessage mess = null;
            mess = blockingMessageCollection.Take();
            sendToQueue(mess);
        }
      }
    }
  });
}


private void MonitorRetryQueue() {
  Task.Factory.StartNew(() =>
  {
    //...NMS stuff
        consumer.Listener += new MessageListener(OnRetryErrorMessage);
        Log.Info("new thread monitoring second queue");

        //need to be constantly up for the consumer to hang around
        while (!stopped) {
          Thread.Sleep(1000);
        }
      }
    }
      });
} …
Run Code Online (Sandbox Code Playgroud)

c# .net-4.0 visual-studio-2010 task-parallel-library

5
推荐指数
1
解决办法
7463
查看次数

ActiveMQ 相互 SSL 身份验证

我正在尝试设置 ActiveMQ 进行相互身份验证,客户端需要一个证书才能将消息传递给代理。我在代理上创建了一个密钥库和一个信任库,并导出了复制到客户端的证书。在客户端,我做了同样的事情,尽管我使用的是 NMS,所以我只使用导出的证书,并将其添加到代理的信任库中。我还将证书添加到其他计算机的本地计算机受信任根证书中。
经纪人的配置是这样的:

<transportConnectors>  
  <transportConnector name="ssl" uri="ssl://0.0.0.0:61616"/>  
</transportConnectors>  
<sslContext>  
  <sslContext keyStore="file:${activemq.base}/conf/keystore.jks"  
    keyStorePassword="ksPass"  
    trustStore="file:${activemq.base}/conf/shared.ks"  
    trustStorePassword="ksPass"/>  
</sslContext>  
<plugins>  
 <jaasCertificateAuthenticationPlugin configuration="CertLogin" />  
</plugins>  
Run Code Online (Sandbox Code Playgroud)

amq 服务wrapper.conf
wrapper.java.additional.8=-Djava.security.auth.login.config="%ACTIVEMQ_CONF%/login.config"

${activemq.base}/conf/login.config

CertLogin {
 org.apache.activemq.jaas.TextFileCertificateLoginModule required
 debug=true
 org.apache.activemq.jaas.textfiledn.user="users.properties"
 org.apache.activemq.jaas.textfiledn.group="groups.properties";
};  
Run Code Online (Sandbox Code Playgroud)

${activemq.base}/conf/user.properties 有

user=CN=nms.client.170,\ OU=IT,\ O=MyOrg,\ L=Oslo,\ S=Oslo,\ C=NO  
Run Code Online (Sandbox Code Playgroud)

${activemq.base}/conf/groups.properties 有

admins=system  
users=system,user    
Run Code Online (Sandbox Code Playgroud)

在 NMS 客户端的 appSettings 中,我使用它来连接:

< add key="jms.uri" value="ssl://brokeraddress.in.hosts:61616?needClientAuth=true&amp;wantClientAuth=true&amp;transport.clientCertSubject=nms.client.170&amp;transport.clientCertPassword=ksClientPw&amp;transport.clientCertFilename=C:\TestClient\client170.crt" />    
Run Code Online (Sandbox Code Playgroud)

如果我在代理中没有 jaasCertificateAuthenticationPlugin,我可以通过 ssl 连接,但有了它(这就是我的想法),我会收到错误,它在Apache.NMS.ActiveMQ.Connection中失败 获取 ExeptionResponse: "java .lang.SecurityException:无法在没有 SSL 证书的情况下验证传输。”
// Send the connection and see if an ack/nak is …

ssl activemq-classic mutual-authentication

5
推荐指数
1
解决办法
1万
查看次数