我在玩.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)
我刚刚开始玩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程序集与C#,VB.NET或其他任何语言无关.
我知道Roslyn和NRefactory,但他们似乎只在C#源代码级别上工作?CodePlex上
还有" 通用编译器基础设施:代码模型和AST API "项目,该项目声称"支持一种表示与语言无关的结构化形式的代码块的分层对象模型",它完全符合我的要求.
但是,我无法找到任何有用的文档或实际执行此操作的代码.
有什么建议如何存档?
Mono.Cecil可以做点什么吗?
我该如何做这样的事情:
var result = db.MyTable.Where(x => x。“ MyProperty” ==“ Test”);
如您所见,我想访问“ MyProperty”,但将属性名称作为字符串。
您好我有问题,当我只是添加一个<DocumentViewer x:Name="docViewer" />我得到一个工具栏,允许我改变XPS文档的查看模式,如下所示:

但是我该如何以编程方式执行此操作?我找不到任何执行此操作的属性,MSDN和Google对此功能一无所知.然后我发现FlowDocumentReader控件有什么ViewingMode属性,但它无法显示XPS文档.我无法相信这是不可能的,我的意思是默认情况下该功能可用,我只想以编程方式更改它...
有人可以提供一个如何将 Observable.Join 与两种不同的可观察类型一起使用的示例吗?到目前为止,
我在这里找到的最好的解释是,左边的可观察对象打开一个窗口,而右边的可观察对象用于在该窗口中查找匹配项,这是有意义的。但这是如何运作的呢?该示例只是使用,我不明白它的作用。对我来说,持续时间选择器听起来像是一个时间跨度,例如缓冲区窗口。leftDurationSelectorrightDurationSelectorPublish().RefCount()
是否有可能以某种方式扩展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流来完成剩下的工作.
这可能吗?
如何在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# ×4
.net ×1
il ×1
lambda ×1
linq ×1
mono ×1
mono.cecil ×1
named-pipes ×1
nrefactory ×1
nunit ×1
procdump ×1
properties ×1
remoting ×1
roslyn ×1
streamreader ×1
streamwriter ×1
string ×1
wpf ×1
xamarin ×1