小编NKn*_*rer的帖子

从NUnit调用远程对象时抛出RemotingException

我在玩.Net Remoting和Mono时发现了一个奇怪的问题.
当我在NUnit执行的代码中调用远程对象时抛出此异常:

System.Runtime.Remoting.RemotingException : Cannot create channel sink to connect to URL 9cd3eef9_6e1f_4e0e_a4fe_0d43b3b0d157/2d2f9b_6.rem. An appropriate channel has probably not been registered. 
Stack trace:  
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke (System.Runtime.Remoting.Proxies.RealProxy rp, IMessage msg, System.Exception& exc, System.Object[]& out_args) [0x001e9] in /tmp/buildd/mono-4.0.1/mcs/class/corlib/System.Runtime.Remoting.Proxies/RealProxy.cs:249
Run Code Online (Sandbox Code Playgroud)

从Console应用程序执行完全相同的代码时,一切正常.

鉴于此接口:

public interface IEchoService {
    string Echo(string message);
}
Run Code Online (Sandbox Code Playgroud)

和托管这样的实现的服务器:

var serverProvider = new BinaryServerFormatterSinkProvider();
serverProvider.TypeFilterLevel = TypeFilterLevel.Full;
var channel = new TcpServerChannel("RemotingTest", 4242, serverProvider);
ChannelServices.RegisterChannel(channel, false);
RemotingConfiguration.RegisterWellKnownServiceType(typeof(HelloEchoService), "RemotingTest.rem", WellKnownObjectMode.Singleton);
Run Code Online (Sandbox Code Playgroud)

这将导致异常:

[Test]
public void SendEchoRequest()
{
    var chan = new TcpClientChannel();
    ChannelServices.RegisterChannel(chan, …
Run Code Online (Sandbox Code Playgroud)

c# mono remoting nunit xamarin

11
推荐指数
0
解决办法
1199
查看次数

procdump不倾销未处理的异常


我刚刚开始玩procdump并且我希望在发生无意义的第二次机会异常时完全转储应用程序.
根据我运行的文档,它喜欢这样:

procdump.exe -ma -e -x C:\CrashDumps C:\Code\CrashApp\CrashApp\bin\Debug\CrashApp.exe
Run Code Online (Sandbox Code Playgroud)

CrashApp.exe是一个简单的控制台应用程序,在启动时抛出异常.
这是我得到的输出:

ProcDump v7.0 - Writes process dump files
Copyright (C) 2009-2014 Mark Russinovich
Sysinternals - www.sysinternals.com
With contributions from Andrew Richards

Process:               CrashApp.exe (6516)
CPU threshold:         n/a
Performance counter:   n/a
Commit threshold:      n/a
Threshold seconds:     10
Hung window check:     Disabled
Log debug strings:     Disabled
Exception monitor:     Unhandled
Exception filter:      *
Terminate monitor:     Disabled
Cloning type:          Disabled
Concurrent limit:      n/a
Avoid outage:          n/a
Number of dumps:       1
Dump folder:           C:\CrashDumps\
Dump …
Run Code Online (Sandbox Code Playgroud)

.net unhandled-exception procdump

10
推荐指数
2
解决办法
9445
查看次数

从.Net程序集中获取AST,无需源代码(IL代码)

我想分析.Net程序集与C#,VB.NET或其他任何语言无关.
我知道Roslyn和NRefactory,但他们似乎只在C#源代码级别上工作?CodePlex上
还有" 通用编译器基础设施:代码模型和AST API "项目,该项目声称"支持一种表示与语言无关的结构化形式的代码块的分层对象模型",它完全符合我的要求.
但是,我无法找到任何有用的文档或实际执行此操作的代码.
有什么建议如何存档?
Mono.Cecil可以做点什么吗?

il abstract-syntax-tree mono.cecil roslyn nrefactory

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

使用LINQ时从字符串访问lambda表达式中的属性

我该如何做这样的事情:

var result = db.MyTable.Where(x => x。“ MyProperty” ==“ Test”);

如您所见,我想访问“ MyProperty”,但将属性名称作为字符串。

c# linq string lambda properties

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

更改WPF DocumentViewer查看模式

您好我有问题,当我只是添加一个<DocumentViewer x:Name="docViewer" />我得到一个工具栏,允许我改变XPS文档的查看模式,如下所示: 在此输入图像描述

但是我该如何以编程方式执行此操作?我找不到任何执行此操作的属性,MSDN和Google对此功能一无所知.然后我发现FlowDocumentReader控件有什么ViewingMode属性,但它无法显示XPS文档.我无法相信这是不可能的,我的意思是默认情况下该功能可用,我只想以编程方式更改它...

wpf documentviewer

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

Observable.Join 示例

有人可以提供一个如何将 Observable.Join 与两种不同的可观察类型一起使用的示例吗?到目前为止,
我在这里找到的最好的解释是,左边的可观察对象打开一个窗口,而右边的可观察对象用于在该窗口中查找匹配项,这是有意义的。但这是如何运作的呢?该示例只是使用,我不明白它的作用。对我来说,持续时间选择器听起来像是一个时间跨度,例如缓冲区窗口。leftDurationSelectorrightDurationSelectorPublish().RefCount()

c# system.reactive

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

如何将自定义身份验证提供程序集成到IdentityServer4中

是否有可能以某种方式扩展IdentityServer4以运行自定义身份验证逻辑?我需要针对几个现有的自定义身份系统验证凭据,并且很难找到这样做的扩展点(他们使用自定义协议).所有这些现有系统都具有客户端知道的API密钥的概念.IdentityServer作业现在应该验证此API密钥,并从系统中提取一些现有声明.我想要做这样的事情:

POST /connect/token
    custom_provider_name=my_custom_provider_1&
    custom_provider_api_key=secret_api_key
Run Code Online (Sandbox Code Playgroud)

然后我做我的逻辑来调用my_custom_provider_1,验证API密钥,获取声明并将它们传递回IdentityServer流来完成剩下的工作.

这可能吗?

identityserver4

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

在NamedPipe上发送多行字符串?

如何在NamedPipe上发送带有空行的多行字符串?

如果我发一个字符串

string text= @"line 1 
line2

line four
";
StreamWriter sw = new StreamWriter(client);
sw.Write(text);
Run Code Online (Sandbox Code Playgroud)

我只在服务器端"第1行":

StreamReader sr = new StreamReader(server);
string message = sr.ReadLine();
Run Code Online (Sandbox Code Playgroud)

当我尝试这样的事情

StringBuilder message = new StringBuilder();
string line;
while ((line = sr.ReadLine()) != null)
{
    message.Append(line + Environment.NewLine);
}
Run Code Online (Sandbox Code Playgroud)

它在客户端连接时挂起,只在客户端断开连接时才会释放.

任何想法我怎么能没有挂在这个循环中得到整个字符串?我需要处理字符串并以相同的方式将其返回给客户端.

保持字符串的原始格式包括空行和空格非常重要.

c# named-pipes streamwriter streamreader

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