小编ISZ*_*ISZ的帖子

SignalR具有自签名SSL和自主机

在研究中试过我的运气,但到目前为止还没有快乐.

我想将SignalR javascript客户端连接到自签名的SignalR Windows服务绑定到自签名SSL证书.

我的应用程序在http上工作得很好,但是当Owin WebApplication开始使用https时,客户端会重复断开连接.

以下是我使用SSL配置SignalR所做的工作.

  1. 使用IIS创建自签名证书
  2. 将证书导入mmc中的受信任的根证书颁发机构(不确定是否有帮助)
  3. Ran NETSH命令将SSL绑定到端口8080

    netsh http add sslcert ipport=0.0.0.0:8080 certhash=123456f6790a35f4b017b55d09e28f7ebe001bd appid={12345678-db90-4b66-8b01-88f7af2e36bf}
    
    Run Code Online (Sandbox Code Playgroud)
  4. 在自托管HubConnection实例中添加了代码以添加这样的导出SSL(尽管这应该无关紧要,因为它是无法连接的客户端):

    if (File.Exists("MyCert.cer") 
        && Settings.GetSetting(Settings.Setting.SrProtocol).Equals("https", StringComparison.InvariantCultureIgnoreCase))
            connection.AddClientCertificate(X509Certificate.CreateFromCertFile("MyCert.cer"));
    
    Run Code Online (Sandbox Code Playgroud)
  5. 使用https启动Owin WebApplication(这应该在http.sys中创建绑定)

    string registerUrl = string.Format("{0}://SOME.WHERE.COM:{1}", Service.Server.SrProtocol, Service.Server.SrPort);
    WebApp.Start<StartUp>(registerUrl);
    
    Run Code Online (Sandbox Code Playgroud)

在SignalR 2.0文档中,它说:

要启动Web服务器,请调用WebApplication.Start(endpoint).您现在应该可以在浏览器中导航到端点/信号器/集线器.

当我浏览到URL http://SOME.WHERE.COM:8080/signalr/hubs时,我成功接收到驱动SignalR的javascript.

当我浏览到URL https://SOME.WHERE.COM:8080/signalr/hubs我没有成功,我收到"使用FF重置了与服务器的连接".

我考虑过的一些额外观点:

  • NETSH SHOW表示网址已注册

    URL group ID: E300000240000022
    State: Active
    Request queue name: Request queue is unnamed.
    Properties:
        Max bandwidth: inherited
        Max connections: inherited
        Timeouts:
            Timeout values inherited
        Number of registered URLs: 1
        Registered URLs: HTTPS://SOME.WHERE.COM:8080/
    
    Run Code Online (Sandbox Code Playgroud)
  • NETSH SHOW表示SSL证书绑定到8080: …

ssl signalr

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

Groovy初始化中的Jenkins环境变量

我正在构建Jenkins的Docker映像,并将ENV变量传递给jenkins.sh初始化文件:

Docker文件

...

COPY ./jenkins.sh /usr/local/bin/jenkins.sh 
Run Code Online (Sandbox Code Playgroud)

詹金斯

echo ENV: "$ENV"
echo CLUSTER: "$CLUSTER"
echo REGION: "$REGION"
Run Code Online (Sandbox Code Playgroud)

当我运行图像时,这些值可以完美地打印出来,但是我想在Jenkins初始化期间在Groovy脚本中使用它们。

在启动过程中,以下内容引发错误:

import java.util.Arrays
import java.util.logging.Logger
Logger logger = Logger.getLogger("ecs-cluster")

logger.info("Loading Archeus-Midwayer...")
import jenkins.model.*
instance = Jenkins.getInstance()

def env = System.getenv()
println(env['CLUSTER'])
Run Code Online (Sandbox Code Playgroud)

错误

警告:无法运行脚本文件:/var/jenkins_home/init.groovy.d/init_ecs.groovy groovy.lang.MissingPropertyException:无此类属性:类的CLUSTER:org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap( org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:52)处的ScriptBytecodeAdapter.java:53)org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:307)处的PogoGetPropertySite.java:52)

如何捕获其中存在的环境变量jenkins.sh

谢谢!

shell groovy amazon-ecs jenkins

6
推荐指数
1
解决办法
4380
查看次数

詹金斯共享图书馆全球/单班

我正在寻找有关Jenkins共享库设计的一些指导,涉及使用类,对其进行初始化,然后能够在我的任何vars文件中使用该实例。

结构体

src
  - foo
   - class
     - Configuration.groovy
vars
  - cicd.groovy
  - doMore.groovy
Run Code Online (Sandbox Code Playgroud)

以下是一个我想初始化一次,但随后可以在任何地方使用的类,而不必将其传递给每个vars函数或每次都重新初始化。

package foo.class

public class Configuration {

    public String Foo

    public String Bar    

}
Run Code Online (Sandbox Code Playgroud)

Vars

在我的cicd.groovy vars文件中,我有类似以下内容:

#!groovy
import foo.class.Configuration

def call () {

    return initCicd()
}

def initCicd() {
    configuration = new Configuration()
    configuration.Foo = 'FOO'
    return configuration
}
Run Code Online (Sandbox Code Playgroud)

但是,在其他的vars文件(如doMore.groovy)中,我想使用相同的配置实例。

#!groovy
import foo.class.Configuration

def call () {

    println configuration.Foo
}
Run Code Online (Sandbox Code Playgroud)

在Jenkins共享库中是否有可以使用的Singleton模式,还是一种在vars文件或步骤中引用实例的方式?如有可能,请分享一个例子。

谢谢!

groovy shared-libraries jenkins

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

Docker CE 覆盖2

我正在寻找有关在 RHEL 上使用 Docker CE 的说明,以及 Overlay 与 Overlay2 文件系统的规定。

从 Docker 文档中我看到以下引用:

注意:如果您使用OverlayFS,请使用overlay2驱动程序而不是overlay驱动程序,因为它在inode利用率方面更有效。要使用新驱动程序,您需要 4.0 或更高版本的 Linux 内核。

和...

Overlay2 驱动程序受 Docker EE 支持,并推荐用于 Docker CE。

和...

注意:如果您使用OverlayFS,请使用overlay2驱动程序而不是overlay驱动程序,因为它在inode利用率方面更有效。要使用新驱动程序,您需要 4.0 或更高版本的 Linux 内核,除非您是 RHEL 或 CentOS 上的 Docker EE 用户,在这种情况下,您需要 3.10.0-693 或更高版本的内核,并遵循一些额外的要求脚步。

我使用的 AWS AMI 是 RHEL,据docker info我所知,我有:

服务器版本:17.09.0-ce

存储驱动:覆盖

内核版本:3.10.0-693.11.6.el7.x86_64

是否有使用 Overlay2 FS 的途径,或者我必须将内核升级到 4.0 或使用 Docker EE?

linux overlay rhel amazon-web-services docker

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

WIX将两个程序集部署到GAC

使用WIX,并试图安装两个相同的组件,一个用于.Net35和其他.Net40.我使用两个单独的组件,但是WIX阻止了项目的编译.

        <Directory Id="GAC40" Name="GAC">
            <Component Id="MyDllServicesModuleGac40Component" Guid="307675AA-8AEC-473B-A78A-FB362CCEDE2A" Win64="yes">
                <File Id="MyDllNet40DllGac" Name="MyDll.dll" KeyPath="yes" Assembly=".net" Source="..\MyDll\bin\Net40\MyDll.dll" />
            </Component>
        </Directory>
        <Directory Id="GAC35" Name="GAC">
            <Component Id="MyDllServicesModuleGac35Component" Guid="47E6BD1B-25CD-466D-945E-06DCF0F2A269" Win64="yes">
                <File Id="MyDllNet35DllGac" Name="MyDll.dll" KeyPath="yes" Assembly=".net" Source="..\MyDll\bin\Net35\MyDll.dll" />
            </Component>
        </Directory>
Run Code Online (Sandbox Code Playgroud)

我收到的错误是:

错误29 ICE30:目标文件'MyDll.dll'由SFN系统上的两个不同组件安装在'[TARGETDIR]\GAC \'中:'MyDllServicesModuleGac40Component.DDD7D974_FE9C_4BA3_BDD3_A1A3A23F8057'和'MyDllServicesModuleGac35Component.DDD7D974_FE9C_4BA3_BDD3_A1A3A23F8057'.这会破坏组件引用计数.D:\ PROJECTS\MyDll.Experimental.3.0.0\Project\MyDll\MyDll.Wix.Services\MergeModule.wxs 34 1 MyDll.Wix.Services

安装程序应该能够检测到.Net35 dll是否安装到C:\ Windows\assembly的GAC,而.Net40 dll安装到C:\ Windows\Microsoft.NET\assembly的GAC.

重命名DLL不是一个选项.

谢谢!

UPDATE

当然,我在发布后想出了一个解决方案,似乎将组件包装在其他元素中,这让我可以使用它.后来我读了Tom Blodget的帖子,这是正确的.

        <Directory Id="GAC1" Name="GAC">
            <Directory Id="GAC40" Name="GAC">
                <Component Id="MyDllServicesModuleGac40Component" Guid="307675AA-8AEC-473B-A78A-FB362CCEDE2A" Win64="yes">
                    <File Id="MyDllNet40DllGac" Name="MyDll.dll" KeyPath="yes" Assembly=".net" Source="..\MyDll\bin\Net40\MyDll.dll" />
                </Component>
            </Directory>
        </Directory>
        <Directory Id="GAC2">
            <Directory Id="GAC35" Name="GAC"> …
Run Code Online (Sandbox Code Playgroud)

wix

2
推荐指数
1
解决办法
3791
查看次数

如何从AWS CLI命令过滤结果

如何过滤以下内容,只返回以10开头的IP结果?*?

aws ec2 describe-instances --filters "Name=tag-value,Values=mytagavalue" --query 'Reservations[*].Instances[*].{InstanceId:InstanceId,PrivateDnsName:PrivateDnsName,State:State.Name, IP:NetworkInterfaces[0].PrivateIpAddress}'
[
    [
        {
            "InstanceId": "i-12345bnmsdfod",
            "PrivateDnsName": "ip-10-34-24-4.my.there.com",
            "State": "running",
            "IP": "10.10.10.4"
        }
    ],
    [
        {
            "InstanceId": "i-12345bnmsdfop",
            "PrivateDnsName": "",
            "State": "terminated",
            "IP": null
        }
    ],
Run Code Online (Sandbox Code Playgroud)

amazon-ec2 amazon-web-services aws-cli

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