使用WinDbg和SOS,我有以下内容:
0:011> !threads
ThreadCount: 7
UnstartedThread: 0
BackgroundThread: 4
PendingThread: 0
DeadThread: 2
PreEmptive GC Alloc Lock
ID ThreadOBJ State GC Context Domain Count APT Exception
0 618 0015b350 20 Enabled 00000000:00000000 0017b720 0 Ukn
2 624 0016f508 b220 Enabled 00000000:00000000 0017b720 0 MTA (Finalizer)
9 e48 001c13d0 1220 Enabled 00000000:00000000 0017b720 0 Ukn
10 e8c 048c6a40 1800220 Enabled 00c296a8:00c2ab44 0017b720 0 MTA (Threadpool Worker) System.NullReferenceException
XXX 0 00224138 1820 Enabled 00000000:00000000 0017b720 0 MTA
XXX 0 001d5b50 1820 Enabled …Run Code Online (Sandbox Code Playgroud) 我试图在同一台机器上运行多个WCF服务托管应用程序.
我想在一个应用程序中运行多个应用程序 - 而不是多个服务.
var host = new ServiceHost(typeof(MyClass1), new Uri[] { new Uri("net.pipe://localhost") });
host.AddServiceEndpoint(typeof(ISomeInterface), new NetNamedPipeBinding(), "FOO");
host.Open();
Run Code Online (Sandbox Code Playgroud)
我为每个应用程序更改"FOO",但仍无法启动多个服务.猜猜它很简单,但我卡住了:(
问候
什么更有效率?抛出异常或抛出错误......我看到的方式是有两种情况:
发生异常并被捕获,您是否抛出现有的Exception或创建一个新的FaultException并抛出它?
您自己的逻辑(例如用户名不能为空)需要将错误抛出为Exception或FaultException.你选哪个?
基本上,哪种方式是最佳实践方式?我问,因为我记得在某处读到有关WCF装箱或拆箱的异常,并且它需要花费额外的资源等...所以我猜也是,这是更有效的方式?
我有一个恼人的错误,它已经弹出,我不知道它来自哪里.错误是:
Error 31 Unable to copy file "app.config" to "bin\Debug\Framework.Tests.dll.config". Could not find file 'app.config'. Framework.Tests
Run Code Online (Sandbox Code Playgroud)
问题是,我在任何地方都没有bin\Debug文件夹,并且它没有说它试图复制app.config的位置.双击错误不会将我带到任何试图复制的代码,所以这对我也没有帮助.所以我不知道应该在哪里制作app.config.
我怎么能找到这个?
我是WCF和命名管道的新手.
我需要一种方法在同一台机器上的UI应用程序和Windows服务之间进行安全通信.这就是我需要的: - 客户端UI应用程序需要将各种消息类型发送(推送)到Windows服务. - 客户端UI应用程序需要将从服务(推送或拉取)接收各种消息类型.
(此处的消息只是结构化的序列化数据).
现在所有这些交换只能在授权用户帐户下进行(可能与服务帐户不同).所以我在考虑为服务和用户帐户ACL命名一个命名管道.
但是,命名管道仅支持流.我有多种类型的消息需要通过命名管道进行交换,这意味着我需要定义它们并对它们进行序列化/反序列化.
为了避免这种情况,我想到了在命名管道上使用WCF(用于序列化和RPC支持).还在Windows服务中托管WCF服务.
问题1)这是一个好方法吗?我在WCF下使用http或tcp时犹豫不决,因为通信必须保留在机器内.
问题2)我是否以及如何对WCF将使用的命名管道进行ACL?这是我可以控制的吗?我觉得使用特定SID对名称管道进行ACL操作可以提供更好的安全性,而不是在客户端和服务器之间实现身份验证方案.
感谢您的任何指示,建议!萨米尔
我有一个客户端应用程序,使用net.pipe协议托管WCF服务.客户端无法与在admin用户下运行的其他WCF服务进行通信.
我已经读过你不能在不同用户之间使用net.pipe进行通信.
有没有办法通过它?