我的公司开发了一个.NET Web服务和一个使用该Web服务的客户端DLL.Web服务通过ssl托管在我们的服务器上,证书由GoDaddy提供并签名.我们在托管环境中有一些客户端在尝试访问我们的Web服务时从客户端DLL收到以下错误消息.
System.Net.WebException底层连接已关闭:无法为SSL/TLS安全通道建立信任关系.
我们的修复方法是让它们在服务器上打开IE,这对很多托管服务本身就是一个挑战,并转到WSDL网址.IE然后通过安全警报对话框提示他们.它表示证书日期有效且名称与页面名称相匹配,但由您未选择信任的公司发布.当他们单击是继续时,客户端DLL可以成功连接到Web服务并正常运行.
有谁知道为什么GoDaddy不会出现在有效的出版商名单中?我们运行的所有服务器都将GoDaddy作为有效权限.我猜测,出于安全原因,他们已经卸载了GoDaddy的权限,但并不完全相信没有其他潜在的问题.
不幸的是,我没有太多运气试图在本地重新创建.如果我进入Internet选项并删除GoDaddy权限并点击我们的服务,ssl工作正常.我回到发布者列表中,GoDaddy重新进入.所以我的第二个问题是,你如何摆脱GoDaddy所以我可以获得无效的证书警告?
好的,最后一个问题.代码中是否有一种方法可以告诉Web服务忽略无效的证书.我已经看到一些帖子以编程方式使用WCF而不是旧的Web服务.
这让我非常困惑.为什么我在以下代码中获得重复的替换字符串:
static void Main(string[] args)
{
String input = "test";
String pattern = ".*";
String replacement = "replace";
Console.WriteLine(Regex.Replace(input, pattern, replacement));
Console.Read();
}
Run Code Online (Sandbox Code Playgroud)
这输出到控制台:
replacereplace
Run Code Online (Sandbox Code Playgroud)
我知道正则表达式会得到奇怪的匹配结束符,但应该没有.我也明白这个模式可以什么都不匹配,但很明显输入并不算什么.这发生在.Net 3.5和4.0中,我对SingleLine和MultiLine也有同样的看法.
我知道有几种选择可以做我期待的事情,但我更想知道其他什么比赛.*认为它的发现.
我理解用于表示通用参数的刻度,如:
Seq.append : seq<'T> -> seq<'T> -> seq<'T>
Run Code Online (Sandbox Code Playgroud)
但是插入符号表示什么,如:
Seq.average : seq<^T> -> ^T
Run Code Online (Sandbox Code Playgroud) 我是Docker的新手,并通过入门文档https://docs.docker.com/docker-for-windows/#explore-the-application-and-run-examples.
当我运行'docker run -it ubuntu bash'时,我收到以下错误:
无法找到图像'ubuntu:latest'本地最新:从库/ ubuntu C:\ Program Files\Docker\Docker\Resources\bin\docker.exe:清单列表条目中的windows/amd64没有匹配的清单.请参阅'C:\ Program Files\Docker\Docker\Resources\bin\docker.exe run --help'.
这是额外的泊坞信息:
码头版
Client:
Version: 17.06.1-ce
API version: 1.30
Go version: go1.8.3
Git commit: 874a737
Built: Thu Aug 17 22:48:20 2017
OS/Arch: windows/amd64
Server:
Version: 17.06.1-ce
API version: 1.30 (minimum version 1.24)
Go version: go1.8.3
Git commit: 874a737
Built: Thu Aug 17 23:03:03 2017
OS/Arch: windows/amd64
Experimental: true
Run Code Online (Sandbox Code Playgroud)
码头工人信息
Containers: 1
Running: 0
Paused: 0
Stopped: 1
Images: 1
Server Version: 17.06.1-ce
Storage Driver: …
Run Code Online (Sandbox Code Playgroud) 我正在升级一个资源服务器,该服务器接受来自我们的 oAuth 服务器的访问令牌。在 .NET 4.7 中,我的启动配置如下所示:
appBuilder.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
Run Code Online (Sandbox Code Playgroud)
当我添加 Nuget 包“Microsoft.Owin.Security.OAuth”时,我收到一条警告,指出该包与目标 .NETCoreApp 不兼容。有道理,但我不确定新包是什么。
我认为我需要的包是“Microsoft.AspNetCore.Authentication.OAuth”。这允许我添加到启动:
services
.AddAuthentication(OAuthDefaults.DisplayName)
.AddOAuth("Bearer", options => options.AuthorizationEndpoint = "uhhh" );
Run Code Online (Sandbox Code Playgroud)
Why would I be configuring an endpoint, I just want to look for an authorization token, not actually serve them up. This looks like the setup for an oAuth server, not a recipient. Also, the old 'OAuthBearerAuthenticationOptions' class allowed me to override things like 'AccessTokenFormat' but I'm not seeing that in the new options.
Lastly, I see …
我安装了Visual Studio 2012项目并安装了以下NuGet包:
鉴于以下设计的Logger类(Logger.fs):
namespace FUnit
type public ILoggerContext =
abstract member LogPath :string
type public LoggerContext (logPath :string) =
member val LogPath = logPath with get, set
interface ILoggerContext with
member this.LogPath = this.LogPath
type public Logger () =
member this.Log (context: ILoggerContext) value =
System.String.Format("Logged {0} to {1}.", value, context.LogPath)
Run Code Online (Sandbox Code Playgroud)
以及单元测试:
namespace FUnit.Test
open FUnit
type public Math_Add() =
[<Xunit.Extensions.Theory>]
[<Ploeh.AutoFixture.Xunit.AutoData>]
member this.``Should Output Value And Path`` (path :string) =
let …
Run Code Online (Sandbox Code Playgroud) 我正在查看SeqModule中Append函数的源代码,并注意到有大量重复的方法,后缀为@xxx.有谁知道为什么这些在这里?
我甚至对这个问题感到愚蠢,因为它看起来很琐碎,但我的大脑让我失望了.如果我有以下内容:
let a, b, c = 1, 1, 1
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以确定a,b和c是否都保持相同的值.就像是:
let result = (a = b = c)
Run Code Online (Sandbox Code Playgroud)
这失败是因为表达式a = b
返回true并且下一个表达式导致true = c
并且抱怨它期望int,而不是bool.我唯一能想到的是:
a = b && a = c && b = c
Run Code Online (Sandbox Code Playgroud)
当我想添加更多变量时,它将无法工作.
我真正要做的就是:
let same (x: string * string * string) =
match x with
| (a, a, a) -> true
| _ -> false
Run Code Online (Sandbox Code Playgroud)
我希望我可以将所有元素匹配到一个元素中,如果它们不同,它会继续前进,但它在匹配中的第二个元素上说它已经被绑定了.
f# ×4
c# ×2
.net ×1
asp.net ×1
autofixture ×1
comparison ×1
docker ×1
generics ×1
oauth-2.0 ×1
regex ×1
replace ×1
seq ×1
ssl ×1
unit-testing ×1
web-services ×1
webexception ×1
windows ×1
xunit.net ×1