Questions tagged «wcf»

Windows Communication Foundation是.NET Framework的一部分,它为快速构建面向服务的应用程序提供了统一的编程模型。

16
集合已修改;枚举操作可能无法执行
我无法弄清此错误的原因,因为在附加调试器后,似乎没有发生此错误。下面是代码。 这是Windows服务中的WCF服务器。每当有数据事件时,服务就会调用NotifySubscribers方法(以随机间隔,但不是很频繁-每天大约800次)。 Windows Forms客户端进行预订时,订户ID被添加到订户字典中,而当客户端取消订阅时,将从该词典中删除它。该错误发生在客户退订时(或之后)。看来,下次调用NotifySubscribers()方法时,foreach()循环会失败,并在主题行中出现错误。该方法将错误写入应用程序日志,如下面的代码所示。当附加了调试器并且客户端取消订阅时,代码将正常执行。 您看到此代码有问题吗?我需要使字典具有线程安全性吗? [ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)] public class SubscriptionServer : ISubscriptionServer { private static IDictionary<Guid, Subscriber> subscribers; public SubscriptionServer() { subscribers = new Dictionary<Guid, Subscriber>(); } public void NotifySubscribers(DataRecord sr) { foreach(Subscriber s in subscribers.Values) { try { s.Callback.SignalData(sr); } catch (Exception e) { DCS.WriteToApplicationLog(e.Message, System.Diagnostics.EventLogEntryType.Error); UnsubscribeEvent(s.ClientId); } } } …

18
保护REST API / Web服务的最佳做法
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 2年前关闭。 在设计REST API或服务时,是否存在用于处理安全性(身份验证,授权,身份管理)的最佳实践? 在构建SOAP API时,您以WS-Security为指南,并且有关该主题的文献很多。我发现有关保护REST端点的信息较少。 尽管我了解REST故意没有类似于WS- *的规范,但我希望出现了最佳实践或推荐的模式。 任何讨论或相关文件的链接将不胜感激。如果重要的话,我们将使用WCF和POX / JSON序列化消息,以使用.NET Framework v3.5构建的REST API /服务。

11
WCF与ASP.NET Web API的比较
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 我花了几个月的时间试图掌握WCF的概念,最近我开发了我的第一个WCF服务应用程序。 为了理解配置文件中的所有设置,我付出了很多努力。 我不相信环境,但是似乎可以用它做很多令人惊奇的事情。 前几天,我发现Microsoft推出了一个名为ASP.NET Web API的新产品。 据我所知,它是一个RESTful框架,非常易于使用和实现。 现在,我试图找出这两个框架之间的主要区别,以及是否应该尝试使用新的API 转换旧的 WCF服务应用程序。 有人可以帮我理解它们的区别和用法吗?
484 c#  wcf  asp.net-web-api 

13
WCF-如何增加邮件大小配额
我有一个WCF服务,该服务从数据库向客户端返回1000条记录。我有一个ASP.NET WCF客户端(我在asp.net Web应用程序项目中添加了服务引用以使用WCF)。 运行客户端应用程序时收到以下消息: 超出了传入消息的最大消息大小配额(65536)。要增加配额,请在适当的绑定元素上使用MaxReceivedMessageSize属性。 有什么帮助吗?如何增加邮件大小配额?
453 .net  asp.net  wcf  .net-3.5 


26
WCF客户端“使用”块问题的最佳解决方法是什么?
我喜欢在一个using块中实例化WCF服务客户端,因为这几乎是使用实现资源的标准方法IDisposable: using (var client = new SomeWCFServiceClient()) { //Do something with the client } 但是,正如此MSDN文章中所述,将WCF客户端包装在一个using块中可能会掩盖导致客户端处于故障状态(如超时或通信问题)的任何错误。长话短说,当调用Dispose()时,客户端的Close()方法将触发,但由于处于故障状态而将引发错误。然后,原始异常被第二个异常掩盖。不好。 MSDN文章中建议的解决方法是完全避免使用using块,而是实例化客户端并使用如下所示的客户端: try { ... client.Close(); } catch (CommunicationException e) { ... client.Abort(); } catch (TimeoutException e) { ... client.Abort(); } catch (Exception e) { ... client.Abort(); throw; } 与using块相比,我认为这很丑。每次需要客户时,都会编写很多代码。 幸运的是,我发现了其他一些解决方法,例如在IServiceOriented上的解决方法。您从开始: public delegate void UseServiceDelegate<T>(T proxy); …
404 c#  vb.net  wcf  using  wcf-client 

5
WCF和ASMX Web服务之间有什么区别?
我对WCF和ASMX Web服务完全感到困惑。在我的早期阶段,我已经使用了很多Web服务,现在引入了一个称为WCF的新事物。我仍然可以创建充当Web服务的WCF。我认为WCF中会有更多内容。 WCF和Web服务之间有什么区别?什么时候应该使用每个?
375 wcf  web-services  asmx 

30
找不到默认端点元素
我已将代理添加到VS2008 / .NET 3.5解决方案的Web服务。构造客户端.NET时,会引发以下错误: 在ServiceModel客户端配置部分中找不到引用合同'IMySOAPWebService'的默认终结点元素。这可能是因为没有为您的应用程序找到配置文件,或者是在client元素中找不到与该协定匹配的端点元素。 搜索此错误告诉我在合同中使用完整的名称空间。这是带有完整名称空间的我的app.config: <client> <endpoint address="http://192.168.100.87:7001/soap/IMySOAPWebService" binding="basicHttpBinding" bindingConfiguration="IMySOAPWebServicebinding" contract="Fusion.DataExchange.Workflows.IMySOAPWebService" name="IMySOAPWebServicePort" /> </client> 我在本地运行XP(我之所以这么说是因为许多Google命中都提到了win2k3),将app.config复制到app.exe.config,所以这也不是问题。 有什么线索吗?

30
断点当前不会被命中。Silverlight应用程序中尚未为此文档加载任何符号
好的,我有: Visual Studio 2010 RC W7 x64启动了Silverlight应用程序的新项目类型。将Silverlight应用程序托管在ASP.NET Web应用程序项目中。Silverlight 3.0版。添加了LinqToSQL类,WCF服务,Winform Tester应用程序(解决方案中的项目)和一些类(也作为解决方案中的项目)。 昨天,突然间我得到了“当前不会找到断点。没有为该文档加载任何符号。消息出现在IDE中,但只影响Web应用程序,我可以调试Silverlight和Winform App。 我尝试/做了的摆脱消息的事情: 重置Visual Studio设置 删除每个\ Temporary ASP.NET Files文件夹中的所有文件(每个32bit / 64bit以及Framework 2.0和4.0都有一个) 尝试使用Visual Studio Integrated Web服务器进行调试-通常我使用IIS,在解决方案的项目输出中,我删除了每个项目文件夹中的每个obj和bin文件夹 创建了一个新的解决方案并将所有项目添加到该新解决方案中 删除解决方案suo文件 创建了一个新的ASP.NET Web应用程序以测试它是否是VS安装问题=>我可以调试此新项目/解决方案 重新启动机器几次 修复了vs.net安装 做了一个IISReset 从IIS中删除了Web应用程序 使用Web应用程序的“项目属性”下的“创建虚拟目录”按钮在IIS中创建新的Web应用程序 将每个项目的Framework版本从3.5更改为4.0 在第二台机器上打开解决方案=>行为相同 对Microsoft Connect进行爬网以查找错误/类似问题 花了7小时。 因此,这是我生命中的第二次。上次我通过删除Temporary ASP.NET Files Folder解决了该问题,但这一次我需要您的帮助。
331 c#  asp.net  wcf  debugging  iis 

6
从Web API使用HttpClient发布JsonObject
我正在尝试JsonObject通过HttpClientWeb API发布。我不太确定该怎么做,在示例代码中找不到太多。 这是我到目前为止的内容: var myObject = (dynamic)new JsonObject(); myObject.Data = "some data"; myObject.Data2 = "some more data"; HttpClient httpClient = new HttpClient("myurl"); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); HttpResponseMessage response = httpClient.Post("", ???); 我想我需要把我JsonObject当成演员,StreamContent但是我对此很挂念。

12
提供的URI方案“ https”无效;预期的“ http”。参数名称:通过
我正在尝试通过basicHttpBinding提供WCF服务,以通过https使用。这是我的web.config: <!-- language: xml --> <service behaviorConfiguration="MyServices.PingResultServiceBehavior" name="MyServices.PingResultService"> <endpoint address="" binding="basicHttpBinding" bindingConfiguration="defaultBasicHttpBinding" contract="MyServices.IPingResultService"> <identity> <dns value="localhost" /> </identity> </endpoint> <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> </service> ... <bindings> <basicHttpBinding> <binding name="defaultBasicHttpBinding"> <security mode="Transport"> <transport clientCredentialType="None"/> </security> </binding> </basicHttpBinding> </bindings> ... <behaviors> <serviceBehaviors> <behavior name="MyServices.UpdateServiceBehavior"> <serviceMetadata httpsGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="true" /> </behavior> …
281 c#  wcf  https 

12
IIS8上的WCF;* .svc处理程序映射不起作用
我正在尝试在2012年内部版本8400的IIS8中运行wcf服务。 在安装Web角色时,找不到像2008年那样的wcf东西(低于3.51)。 安装时,缺少svc处理程序映射,所以我做了一个: %windir%\Microsoft.NET\Framework\v3.0\WindowsCommunication Foundation\ServiceModelReg.exe –i 现在有处理程序映射,但是我仍然得到: The resource you are looking for does not have a handler associated with it. (我删除了静态文件处理程序。) 该站点正在使用经典管道以使用模拟。
272 asp.net  wcf  iis-8  iis-8.5 

6
引导全为0(零)吗?
我正在测试一些WCF服务,该服务可以来回发送带有Guid的对象。在我的Web应用程序测试代码中,我正在执行以下操作: var responseObject = proxy.CallService(new RequestObject { Data = "misc. data", Guid = new Guid() }); 由于某些原因,对new Guid()的调用会生成具有全0(零)的Guid,如下所示: 00000000-0000-0000-0000-000000000000 是什么原因造成的?
241 c#  .net  wcf  web-services  guid 

6
如何从WCF服务返回干净的JSON?
我正在尝试从WCF服务返回一些JSON。该服务仅从我的数据库返回一些内容。我可以得到数据。但是,我担心JSON的格式。当前,返回的JSON格式如下: {"d":"[{\"Age\":35,\"FirstName\":\"Peyton\",\"LastName\":\"Manning\"},{\"Age\":31,\"FirstName\":\"Drew\",\"LastName\":\"Brees\"},{\"Age\":29,\"FirstName\":\"Tony\",\"LastName\":\"Romo\"}]"} 实际上,我希望JSON的格式尽可能整洁。我相信(我可能是不正确的),以干净的JSON表示的相同结果集应如下所示: [{ "Age": 35, "FirstName": "Peyton", "LastName": "Manning" }, { "Age": 31, "FirstName": "Drew", "LastName": "Brees" }, { "Age": 29, "FirstName": "Tony", "LastName": "Romo" }] 我不知道“ d”来自哪里。我也不知道为什么要插入转义字符。我的实体如下所示: [DataContract] public class Person { [DataMember] public string FirstName { get; set; } [DataMember] public string LastName { get; set; } …
233 wcf  json 

6
[DataContract]的命名空间
我找不到要用于[DataContract]和[DataMember]元素的名称空间。根据我的发现,添加以下内容似乎就足够了,但就我而言,这还不够。 using System; using System.Runtime.Serialization; 这是我的代码片段: using System; using System.Runtime.Serialization; namespace MyNamespace { [DataContract] public class Tuple<T1, T2> { // A custom implementation of a Tuple //... //... } } 我得到的错误是: 找不到类型或名称空间名称“ DataContract”(您是否缺少using指令或程序集引用?) 我使用的命名空间不正确吗?
230 c#  wcf  datacontract 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.