草庐IT

c# - 如何使用 DataContractJsonSerializer 将类类型而不是命名空间序列化为 Json 字符串

我正在尝试在WCF服务中使用DataContractJsonSerializer将类层次结构序列化为Json字符串。序列化派生类的默认行为是将以下键值对添加到对象:"__type":"ClassName:#Namespace"我的问题是命名空间很长,它们会使Json字符串膨胀。我想以某种方式干预序列化并改为输出:"__type":"ClassName"并在反序列化时再次干预以指向正确的命名空间(我在运行时知道)。有什么办法可以做这样的事情吗? 最佳答案 Thispage描述发出__type属性的情况。简而言之,在WCF中,如果您使用

c# - WCF 没有正确超时?

我遇到超时问题,这些是详细信息:我的绑定(bind)配置如下所示:我正在向我知道已关闭的服务器发送一条消息,因此按照我的app.config中的规定,连接应该会在3秒后超时,但由于某种原因需要20-30秒。当抛出EndPointNotFoundException时,这是我得到的信息:System.ServiceModel.EndPointNotFoundException:Couldnotconnecttonet.tcp://10.0.0.82:4466/MegaMatcherWcf.Theconnectionattemptlastedforatimespanof00:00:03.TC

c# - 无法让 netTcpBinding 请求显示在 Fiddler 中

我有一个具有两个端点的WCF服务。一种使用basicHttpBinding,另一种使用netTcpBinding。这是我的配置...但是,当我使用该服务时,我试图比较两个请求之间的差异。所以我正在运行fiddler来做到这一点。我可以在Fiddler中看到basicHttpBinding请求,但无法显示net.tcp://请求。我该怎么做才能看到此流量? 最佳答案 Fiddler是一个HTTP代理,因此它只会捕获使用HTTP协议(protocol)的请求-它不会捕获直接使用套接字发出的请求。您可以使用NetworkMonitor或其

c# - 有效关闭 WCF 4 channel 的正确方法

我正在使用以下方法关闭WCF4channel。这是正确的做法吗?using(IServicechannel=CustomChannelFactory.CreateConfigurationChannel()){channel.Open();//dostuff}//channelsdisposesoff?? 最佳答案 在WCF的“早期”,这曾经是普遍接受的发布WCF客户端代理的方式。然而事情已经发生了变化。原来执行IClientChannel.Dispose()简单地调用IClientChannel.Close()方法,在某些情况下可

c# - 使用接口(interface)进行远程或 WCF 的新开发(在同一台机器上的两个 .NET 应用程序之间)?

我们希望在同一台机器上运行的两个.NET应用程序相互通信。我们想要三个项目。包含接口(interface)的库。实现接口(interface)的“服务器”应用程序和使用接口(interface)与服务器通信的“客户端”应用程序。我们不希望客户端引用服务器。我们有一个测试应用程序可以通过远程处理执行此操作,但最近发现远程处理正在被WCF取代。由于这是新开发,我们觉得我们应该使用WCF,但我们还没有设法让它与WCF一起工作,并且想知道是否可能?编辑:抱歉我上面没有详细说明,但当时我无法访问任何代码。我在这个项目上和另外两个人一起工作,并没有仔细研究他们的IPC东西。我知道他们目前认为WCF

c# - 如何为 WCF 指定自定义 SoapAction

我正在创建一个将从另一个服务调用的WCF服务。在WSDLsoapaction中出现如下我想要它如何指定自定义soap操作? 最佳答案 您还可以指定Action经营契约(Contract)属性(property):[ServiceContract]publicinterfaceIMyServiceContract{[OperationContract(Action="http://www.TextXYZ.com/FUNC/1/0/action/MyMethod")]voidMyMethod();}您还可以设置ReplyAction如果

c# - 在 wcf 服务上返回 html 格式而不是 json 或 xml

我有运营契约(Contract):[System.ServiceModel.Web.WebGet(UriTemplate="c",BodyStyle=WebMessageBodyStyle.Bare)][OperationContract]stringConnect();我将其实现为:publicstringConnect(){return"Somelink";}当我转到该链接时,我得到:如何将响应格式化为html?甚至纯文本。我不想取回html或json...我知道我可以创建一个查询该服务的网站,但我只想创建一个可在任何浏览器上运行的简单“类似控制台”的应用程序...

c# - 在 WCF 服务的方法中使用输出参数是不好的做法吗?

我正在寻找超出通常的“输出参数令人困惑并表明该方法正在做不止一件事”式参数的原因,以及更多关于WCF服务中输出参数特别糟糕的地方。在我现在工作的地方,我们在WCF服务中有一条禁止使用它们的规则,我正在努力找出原因! 最佳答案 就个人而言,我在特定的地方使用out参数(例如名为TryParse()的方法)。所以,我有一些你提到的偏见,我只在特定的、有限的地方使用它。此外,您不能假设.Net应用程序将在另一端使用它。因为WCF提供了一个可用作SOAP或RESTWeb服务(以及其他通信类型)的接口(interface),所以我不能保证WC

c# - WCF Web 服务错误 : "Service endpoint binding not using HTTP protocol"?

我有一个简单的WCF服务,在我的开发机器上测试时它运行良好。现在我已将Web服务移至Web服务器,并在http://mydomain.com:8005运行该服务(在Debug模式下).打开Web浏览器访问该URL会显示预期的服务页面,如果我在我正在调用的界面内的服务器上放置一个断点,它会命中断点并返回预期的数据......但在客户端它会返回出现以下错误:AnerroroccurredwhilereceivingtheHTTPresponsetohttp://mydomain.com:8005/.Thiscouldbeduetotheserviceendpointbindingnotus

c# - Web 服务操作的性能计数器

我有一个WCF服务托管在Windows服务中,通过netTCP与winform客户端通信。很久以前,WCF服务托管在IIS中,此时我可以在性能计数器监视器(performanceCounters="All")中看到WCF服务的每一个操作。这样可以轻松查看最常用的操作。我再次需要这些性能计数器,但这次即使性能计数器设置为“全部”,我也无法在性能监视器中找到它们?我需要做什么才能让他们回来?WCF服务需要登录才能使用它的操作,但登录是由我手动完成的,这意味着用户首先使用用户名和密码调用登录操作,如果它的数据不正确,则会出现securityException抛出。所以没有任何进展。