关闭和处理WCF服务

ICommunicationObject上的Close方法可以引发MSDN概述的两种类型的异常。我理解为什么Close方法可以抛出这些异常,但我不理解的是,为什么服务代理上的Dispose方法调用Close方法而不使用try。您的Dispose方法不是您想要确保不会抛出任何异常的地方吗?它似乎是.NET代码中常见的设计模式。这是一篇来自 如果Close是该区域的标准术语,请考虑在Dispose()之外提供方法Close()。执行此操作时,使Close实现与Dispose相同非常重要 您可以在下面

有没有办法告诉WCF在请求中使用安全性,但在响应中忽略它?

我们必须连接到第三方SOAP服务,我们正在使用WCF来连接。该服务是使用ApacheAxis开发的,我们无法控制它,也无法改变它的工作方式。 我们看到的问题是,它希望使用Web服务安全性格式化请求,因此我们正在执行所有正确的签名等操作。但是,来自第三方的响应不安全。如果我们嗅一下电线,我们会看到响应很好地返回(尽管没有任何时间戳、签名等)。 底层的.NET组件将此作为错误抛出,因为它将其视为安全问题,因此我们实际上不会收到soap响应。是否有任何方法可以配置WCF框架以发送安全请求,但响应中不需

WCF web服务错误

我在连接wcf服务时出错 响应消息的内容类型text/html与绑定的内容类型不匹配(application/soap+xml;charset=utf-8) 下面是我的wcf服务配置文件: <?xml version="1.0"?> <configuration> <customErrors mode="Off"> </customErrors> <system.serviceModel> <servi

使用WCF的多人游戏

我想使用WCF编程一个游戏。我使用的是所有消费者都使用的单个游戏对象。当其中一名玩家移动时,我如何通知所有其他玩家?我建议您看看XNA。它是一个为Windows、Xbox 360和Zune编写游戏的托管框架,并且支持多玩家、处理图形等。更多信息请访问

Wcf 在一个绑定中支持多个方案

我开发了一个自定义绑定,它可以在http上工作,因此返回http作为它的方案。我当前返回此方案的代码如下: 我对绑定的派生使用 public override string Scheme { get { return this.transportElement.Scheme; } } 其中transportElement是我的自定义TransportBindingElement的一个实例,其中方案由 public override string Scheme { get { r

WCF服务的构造函数是否应该使用错误来处理错误?

我有wcf服务。服务本身(继承的类)有一个构造函数,该构造函数有时会抛出异常。如果服务失败,我想向用户显示一条消息。我是否应该像使用服务方法一样使用故障?故障通常意味着跨服务边界提供错误信息,在大多数情况下,故障是作为对格式错误或无效请求消息的响应发送的。考虑到这一点,我认为这里的错误是没有意义的 我同意上面的评论,服务类的构造函数应该避免抛出异常。如果您的服务是会话式的,那么您可能需要考虑一种设计,在这种设计中,这种类型的初始化是特定服务操作的结果。这可以在WCF中通过在[OperationC

Wcf SvcUtil.exe的替代方案?

我整天都在与SvcUtil搏斗,试图让它为一些IMS企业服务生成有用的代码(主要是组管理服务,但我们也需要它来处理其他服务)。您可以在这里找到IMS服务WSDL 我得出的结论是,SvcUtil是微软的一个无用的事后想法,它不支持WSDL和XSD标准,甚至是半途而废。它无法生成符合IMS同时使用和运行的标准WSDL契约的WCF服务。尽管从以下WSDL()生成了可编译的代码,但通过观察从WCF服务生成的WSDL(?WSDL、?WSDL=wsdl0、?xsd=xsd0等)可以看出,这些操作都不存在,并

如何配置自定义绑定以使用WCF使用此WS-secure Web服务?

我正在尝试将WCF客户端配置为能够使用返回以下响应消息的Web服务: 响应消息 为此,我构建了一个无法工作的自定义绑定。我一直收到一条安全标题为空的消息 我的装订: 我的请求似乎使用了与响应相同的SOAP和WS-Security版本,但使用了不同的名称空间前缀o而不是wsse。这可能是我一直收到安全标头为空消息的原因吗 请求消息 我需要如何配置我的WCF客户端绑定才能使用此Web服务 非常感谢您的帮助 Sander我的问题似乎在以下kb文章中得到了解决: 尚未下载修复程序,因为似乎没有可用的下载

Wcf 无效操作例外

我在使用wcf服务时遇到了这个奇怪的问题 l2sqldal。 服务器托管在本地主机上,并包含相应接口的实现。客户机熟悉该接口,偶尔会通过使用tcp传输的公开服务查询数据库。 当客户端在本地运行时,一切正常。 但是,每当客户端在另一台计算机上运行时,“InvalidOperationException”就会在System.Data.dll中抛出(传输仍会被传递),并且随着时间的推移,通道会进入“Faulted”状态(而传输无法被传递)。 我觉得我的申请缺少一些非常基本的东西。 有人能指出这种奇怪行

集成Windows身份验证WCF多主机头IIS 6不工作

我有一个asp.NET2.0网站,里面有WCF服务,运行在.NET3.5框架上。该网站仅使用集成Windows身份验证进行设置。web服务器是IIS 6,在Windows 2003 Sp2服务器上具有负载平衡。我无法使用完整url访问WCF服务.svchttp://myqa2.abcdefg.com/trxn/WCFTrxnService.svc. 还要注意,服务器配置了多个主机头。本网站受siteminder保护。起初我犯了一个错误 此集合已包含具有方案http的地址。此集合中每个方案最多只能

Wcf 防止发现端点创建服务实例

我在WCF中使用DiscoveryEndpoints,但我注意到,当发现服务并联系DiscoveryEndpoint时,它实际上会导致创建服务实例。我不要这个 这几乎可以肯定与我正在使用自定义实例提供程序(以支持StructureMap)这一事实有关,它将自定义InstanceProvider应用于每个EndpointDispatcher 似乎我只想为其契约实际上与服务实现匹配的端点应用定制InstanceProvider 有什么想法吗?我想我已经解决了。。。我只是忽略了任何已设置IsSyste

在Windows窗体应用程序中托管WCF服务

我需要在Windows窗体应用程序中托管WCF服务,并从Windows服务调用WCF服务,该服务将向WCF服务发送数据,WCF服务将在Windows窗体应用程序(桌面应用程序)中显示数据 我如何实现这一点?我需要的代码工作正常并且以前尝试过。请使用以下代码在Windows窗体应用程序中承载WCF服务: using System.ServiceModel.Channels; ServiceHost host = new ServiceHost(typeof(MyNamespace.OrderSer

WCF双工与DHCP?

我正在运行的这个类似聊天的应用程序中使用双工WCF合同。(显然不是真正的聊天,但出于思考的兴趣,你可以假设它足够相似) 问题是,许多讨论此合同的客户机都在运行dhcp,对此我无能为力 使用dhcp处理双工通信的最佳方法是什么?我找到一个设置,这意味着我可以在运行时更新此值。。。。看起来有点笨拙 更新 我发现在我的WCF服务器日志中,部分问题在于它将主机名放在了响应地址中。我做错了什么 谢谢你直截了当地说,你做错的第一件事就是使用DualHttpBinding做双工。整个绑定是一个巨大的难题,很容

Wcf 与AuthorizationContext相比,通过附加到请求线程的安全主体访问声明

我正在使用他们用来验证活动联合用户身份的位置。现在我想从WCF服务中访问用户的声明 根据,声明由请求线程访问。。。有人能解释或演示这意味着什么吗?请求线程就是在服务器上执行服务API的线程。从该线程(即您的服务api中),您可以访问thread.CurrentPrincipal.Identity。这将是一个索赔实体,其中包含您的STS授予您的索赔。例如: class MyService:IService { // code running on wcf server bool A

WCF wsdualhttpBinding自定义用户名

我犯了一个非常恼人的错误: 我的场景-使用wsdualhttpbinding在WCF中实现的简单消息/邮件服务器\客户端(双用于回调,新消息的在线更新) 所有安全配置都是用代码编写的(根本没有*.config)。在第一次连接时,客户端抛出以下命令 [System.Security.Cryptography.CryptographyException]={“错误长度。\r\n”} 由于内部异常为NULL,因此不可能钻得更深。 服务器配置: WSDualHttpBinding bindin

在Castle Windsor中注册wcf客户端组件的正确错误消息

当我试图在Castle Windsor中注册指向配置中存在错误的WCF服务的组件时,我试图获取错误消息。要注册我正在使用的组件,请执行以下操作: container.Register(Component.For<MembershipService>().ImplementedBy<MembershipServiceClient>.LifeStyle.Transient); container.Register(Component.For().ImplementedBy.

使用razor在Webmatrix中使用wcf webservice?

我四处搜索,找不到任何显示如何使用razor使用Webmatrix使用WCF Web服务的内容?我不想在jQuery中使用它,我想实际使用C#/razor语法。有什么想法吗?任何帮助都将不胜感激 Chris如果您正在从Visual Studio中查找类似“添加服务引用”的内容,则它在Web Matrix中不可用。您需要手工编写所有管道,或者使用VisualStudioExpress产品之一(http://www.microsoft.com/visualstudio/en-us/products/

可选地在WCF中隐藏DataContract的属性

我有一个名为Customer的datacontract,有两个OperationContract,比如CreateCustomer()和UpdateCustomer(),它们将Customer作为数据契约 现在,我需要在UpdateCustomer()中隐藏Customer datacontract的一些属性。例如,在客户数据契约中有一个名为SSN的属性。此属性应在CreateCustomer()中可见,并且不应在UpdateCustomer()中用于更新。你知道怎么做吗 我们是否需要两个Ope

单并发模式下的WCF调用顺序

假设WCF服务的ServiceBehavior.ConcurrencyMode=Single 服务何时开始阻止并发调用 例如,假设我们有两个客户机:慢客户机和快客户机 At time 0 Slow starts a slow service call that includes a huge chunk of data. At time 1 Fast makes a fast service call. At time 2 the slow data finally arrives and th

Wcf 反序列化Agatha请求的格式化程序异常

我断断续续地为这件事挠头已有好几年了 我希望有人能提供一些见解。首先是 例外 活动返回异常:格式化程序引发 尝试反序列化消息时出现异常:出现错误 尝试反序列化参数时。 InnerException消息是“第1行位置837中的错误”。元素 'http://schemas.datacontract.org/2004/07/Agatha.Common.Request' 包含映射到名称“http:// schemas.datacontract.org/2004/07/ MyCompany.MyProdu

基于SSL的WCF问题

我在IIS 6中有一个WCF web服务,并试图让它通过SSL工作。当我调用该服务时,出现以下错误: 无法处理该消息。这很可能是因为该行动http://tempuri.org/IARPolicyComposer/GetTemplatesList'不正确,或者因为消息包含无效或过期的安全上下文令牌,或者因为绑定之间不匹配。如果服务因不活动而中止通道,则安全上下文令牌将无效。为了防止服务过早中止空闲会话,请增加服务端点绑定上的接收超时 以下是服务配置: <system.serviceModel

如何使用Windows XP IIS 5.1部署WCF服务应用程序(Framework 4.0)?

如何在Windows XP IIS 5.1中部署使用Visual Studio 2010(Framework 4.0)制作的WCF服务应用程序?在IIS中创建一个新的虚拟目录以承载WCF服务应用程序-您可以将应用程序放在inetpub\wwwroot中,或者让虚拟目录指向应用程序的物理位置 在虚拟目录的属性中,确保ASP.NET选项卡的ASP.NET版本设置为4.0.30319 另外,请确保您的Web.config文件具有适用于您部署到的环境的正确设置(例如,服务地址和可能特定于该环境的任何其他

手动创建客户端代理和引用MSMQ WCF服务之间的区别?

在大多数使用MSMQ传输的WCF服务示例中,始终首选在Visual Studio命令提示符中使用svcuti手动创建代理,而不是简单地添加服务引用。当您可以通过向VisualStudio中的“添加服务引用”对话框提供服务的端点地址来引用服务时,为什么要使用VS命令提示符创建代理(因为这样做稍微费力一点)?我只是在阅读时偶然发现: 请注意,在中无法轻松使用添加服务引用向导 Visual Studio添加对使用MSMQ的WCF服务的引用 运输 到底为什么这么难?前一种引用WCF服务的方法有什么好处(

在具有SSL和HTTP身份验证的WCF客户端中使用哪种安全模式?

我需要在WCF客户端中使用SSL和HTTP身份验证来连接到web服务。我有如下所示的wcf客户端绑定配置和代码,用于加载证书并传递用于http授权的用户名和密码。尝试此操作时,我收到一个错误“http请求未经客户端身份验证方案‘匿名’。来自服务器的身份验证为‘Basic realm=“ws.dataway.com:443’”。远程服务器返回一个错误:(401)未经授权。任何人都可以告诉如何解决这个问题,以及需要在绑定配置中更改什么?谢谢 <basicHttpBind

从WCF服务访问com对象时出现访问被拒绝错误

我在Windows server 2008计算机上安装了WCF服务,我正在从运行在Windows 2000计算机上的.net framework 2.0 Windows应用程序访问该服务。我能够连接到WCF服务并执行一个简单的方法。在我的WCF服务中,我有一个对COM dll的引用,但是当我试图调用一个访问这个客户端COM对象的方法时,我得到了一个错误 正在检索具有CLSID的组件的COM类工厂 {XXXXXXXXXXXXX}由于以下错误而失败:80070005访问失败 否认 CLSID用于为c

在WCF客户端上调用多个操作

我目前正在看一些代码,这些代码基本上是从文件中逐行读取数据,并在WCF客户机上为每一行调用适当的方法。我对代码的问题是,每个操作都会创建一个新的客户端,即: function CallSomeOp(line) { using (var client = new Client() { client.SomeOp(line); } } 这似乎使客户端关闭连接,并为文件中的每一行重新打开一个新的连接,这似乎是一个很大的开销。我想做的是将客户机的创建移到函数外部并进

Wcf 对象图中可序列化或反序列化的最大项数。。。知识型

在WCF 4.0服务中,我们在一个通用列表中接收到大量数据。此列表对象图大于65536默认限制。我们已经非常习惯了,所以我们已经配置了能够获取这些大图的服务 <serviceBehaviors> <behavior> <dataContractSerializer maxItemsInObjectGraph="2147483647" /> </behavior> </serviceBehaviors>

jQuery ajax跨域发布到WCF rest服务

我正在尝试向WCF rest服务发送跨域帖子。以下是获取请求的我的服务代码 [WebInvoke(UriTemplate = "", Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)] public SampleItem Create(SampleItem insta

在.Net 4 WCF中使用Coldfusion生成的SOAP服务时出现问题/错误

我有一个.NET4项目,它必须使用SOAPWeb服务。我在VisualStudio(2008/2010)中有一些添加web引用的经验,并且我使用web服务引用工具 在我开始之前: 我已将WSDL上载到 所以我的问题是: 我将我的Web服务引用添加到我的项目中,生成了类和方法,并编写了一些用于测试的基本代码。我已经让负责服务的人员确认了代码,并让我的PHP对应人员从相同的WSDL生成一些PHP文件 问题是响应对象包含空属性。我没有例外 我接下来尝试的是: 我尝试使用WSDL.exe创建类文件,它确

无法从本地计算机调用WCF服务

我在VS2008中使用WCF服务应用程序模板创建了一个WCF Web服务。 在同一个解决方案中,我创建了一个web应用程序项目,并将web引用添加到提供服务url的服务中 现在,当我从我的web应用程序项目调用服务方法时,我得到了一个超时,我无法从调用服务方法获得O/p。下面是我用来从服务调用方法的代码: using System; using System.Collections; using System.Configuration; using System.Data; using Sys

Wcf 动态添加服务引用

我们可以在不使用VisualStudio中的add reference的情况下动态地向项目添加服务引用吗。元数据的Wsdl导入是否有助于实现这一目标?有人可以帮助我动态加载服务并将其附加到项目,并在wcf中使用客户端,或者为我提供实现这一目标的方法 NET framework有一个专用于此的命名空间,称为。从较高的层次上,您可以使用一个可以定位可供使用的服务的 为了能够找到带有服务信息的服务,需要通过类发送服务信息。此类允许服务发布公告消息。从文件中: 公告消息包含有关服务的信息,如其完全限定的

Wcf server 2008证书私钥权限

我有一个奇怪的问题,我在谷歌上搜索了又搜索,没有结果。我正在尝试为windows server 2008 R2上的wcf服务应用程序设置证书。我已经将证书导入到localmachine个人存储中,我得到了可怕的结果 "Keyset does not exist...the certificate ... must have a private key that is capable of key exchange. The process must have access rights for

Wcf 如何将参数传递给ServiceHost

我正在做以下工作 //Define the service host this._smeediPluginServiceHost = new ServiceHost(typeof(SmeediServiceHost), smeediServiceUri); this._smeediPluginServiceHost.AddServiceEndpoint(typeof(ISmeediServiceHost), GetBinding(), smeediService

Wcf 传出的Soap请求未签名

我的外出soap没有签名。 下面是即将发布的soap的外观 <xenc:EncryptedKey xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"> <xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/> <KeyInfo xmlns="http://www.w3.org/20

如何使用ServiceHostFactory在IIS托管的WCF服务中向客户端端点添加行为

我正在研究实现IDispatchMessageInputer和IClientMessageInputer,以查看AfterReceiveRequest和BeforeSendRequest方法中的消息对象。 我的要求是在WCF服务的代码级别进行更改。没有配置更改。 如何将此行为附加到调用此服务的所有端点和服务本身。实施iContractBehavior对我有帮助吗 编辑1: WCF服务托管在IIS上。是否可以通过代码添加行为 编辑2: 似乎使用ServiceHostFactory我们可以实现这一点

用于monodroid应用的wcf服务

我在访问WCF服务时遇到困难。我的服务是 运行在与MonoDroid应用程序相同的解决方案中,并由visual Studio托管 演播室我将其配置为BasicHttp。该引用在运行时添加ok 当我调用一个简单的测试方法时,我得到: System.Net.WebException:错误:连接失败(连接被拒绝) 我正在呼叫本地主机上的服务:51559。 这是否与使用JQuery进行跨域web服务查询类似? 请求是否也来自本地主机(仿真器) AsI发现,在向web应用程序调用我的wcf服务时,该应用程

基于类别的WCF服务通知

如何实现基于类别的WCF通知 我想向寻求特定产品类别的客户发送通知,而不是通知所有客户 有没有可能请大家分享一下算法或者实现方法请大家分享 提前感谢,您正在寻找发布-订阅模式。看看这个谢谢你的回复。我已经用信号R而不是WCF实现了它。

无法记录WCF邮件正文

我正在使用32位BizTalk 2013r1主机实例通过LOB适配器向Oracle发送插入请求 我需要跟踪正在发送的邮件正文。我已将btsntsvc.exe.config配置如下: <configuration> <system.diagnostics> <sources> <source name="System.ServiceModel" switchValue="Verbose,ActivityTracing">

在.NET3.5中的WCF服务中重用客户端

据我所知,ClientBase为通道工厂添加了内置缓存。但它应该出现在.Net(4.5)的更高版本中: 现在,我有一个简单的示例项目,看看是重复使用同一个客户机,还是为每个调用创建一个新的客户机来分析所花费的时间。下面是一些代码片段: [ServiceContract] public interface ISoapService { [OperationContract] string GetData(int value); } 客户端代码: private static vo

我必须添加WCF服务类库才能在Windows服务中承载WCF服务吗?

我阅读了有关如何在Windows服务中托管Wcf服务的内容。这里有一个指南: 但我所做的只是在Windows服务的同一个项目中创建新的WCF服务类和接口,而不是单独为WCF服务创建一个新项目。 有可能吗?因为我无法从解决方案中的其他项目向该服务添加服务引用。它找不到了。好的,这是我找到的 创建一个新的解决方案,其中包含一个Windows服务项目、一个Wcf服务类和一个Asp.Net文件夹 正在运行Windows服务 正在尝试向Asp.Net项目添加服务引用 结果:找不到服务 将包含Wcf项目的

Wcf AppFabric缓存侦听器

我在一个webfarm上有几个WCF服务,它们捕获发送给它们的每个请求对象并将其缓存,并在达到指定请求量后将其写入DB。这样做是为了最小化对DB的调用。我没有使用AppFabric缓存,而是使用内存缓存,这意味着每个节点的缓存都是独立的。一切都很好 我想在服务器上安装AppFabric并将请求写入该缓存。现在我的问题是,我可以在AppFabric本身上进行某种编程(可能是一个DLL)吗?AppFabric会定期从缓存中读取数据,写入数据库并将其刷新?因此,我的所有服务都将把请求放在缓存中。这将使

WCF不工作的Autofac

我试图在WCF中实现Autofac,但它不起作用 步骤:1 protected void Application_Start(object sender, EventArgs e) { var builder = new ContainerBuilder(); // Register your service implementations. builder.RegisterType<DatabaseFactory>().As

WCF发布向导发布的站点引发“应用程序中出错…”

我正在运行BizTalk 2013r2,但发布向导出现问题 我使用了BizTalk WCF发布向导,执行了以下步骤: 仅元数据端点MEX,为接收位置发布 将架构发布为WCF服务 更新web服务描述树视图以提供单个单向web方法 提供当前正在使用的目标命名空间 输入网站的位置为use localhost,选择Overwrite existing location,Allow anonymous access 生成的服务摘要如下: <?xml version="1.0" encoding="u

Dynamics AX 2012 R2:使用web服务WCF启动采购订单审批工作流

我们正在尝试设置一个外部服务,以连接到AX以批准POs和费用。这将通过一个休息电话来实现 请有人给我们提供一份文档,或者我们可以查阅哪些信息来获取这方面的信息 干杯 一种方法是使用Visual Studio项目并按常规设计restful服务,但在自定义x++逻辑中使用代理类与工作流类交互,另一种方法可能是查看AIF来澄清,在高层,我们试图实现如下业务流程:-用户能够检索分配给他的采购订单的状态,待审批-然后用户能够批准或拒绝采购订单-然后用户操作触发AX中的相应工作流,并遵循AX中配置的升级/拒

WCF同步框架现有连接已被远程主机强制关闭

更新这似乎是由于服务器的物理内存不足造成的 我正在使用WCF同步框架将大约200000条记录上载到数据库。通过使用SQLServerProfiler,我能够验证web服务器是否收到记录并开始将其写入数据库。在写入大约60000条记录后,web服务器抛出一个异常。在一次尝试中,异常在7分钟后抛出;在另一次尝试中,9分钟后引发异常。堆栈跟踪 System.ServiceModel.CommunicationException: An error occurred while receiving th

Wcf Visual Studio 2015+;Xamarin+;本机便携式PCL+;周转基金

因此,我们的企业正在使用Visual Studio走Xamarin路线。浏览所有在线文档表明,从web服务创建WCF代理客户端并将其放置在PCL中应该很简单。在苦苦挣扎并试图弄清楚为什么我不能使用slsvcuti.exe生成的类编译PCL,或者为什么“添加服务引用”菜单项丢失后,我放弃了并下载了示例项目 原来我一直缺少的是PCL的目标配置文件。对于Visual Studio 2015+Xamarin,默认配置文件设置为111。事实证明,配置文件111不支持WCF,因为它以Windows Phon

Wcf org.apache.xmlbeans.XmlException:org.apache.xmlbeans.XmlException:error:引用未定义的实体:trade

我第一次尝试使用SOAPUI5.3.0。以下是我所做的: 已创建默认WCF项目并将其发布到IIS 确保我可以在此处访问WSDL: 打开Soap UI并选择文件/新建Soap项目 按照步骤2输入初始WSDL。项目名称将自动填充。单击“确定” 然后我看到这个窗口: 我键入Windows凭据(以访问代理服务器),然后看到此错误: Error loading [http://MyComputer/WCFTest/Service1.svc?wsdl]: org.apache.xmlbeans.XmlEx