Tag: #wcf

OperationContext中的标头

我做了一个小项目(WCF + REST),我遇到了一个小问题。 我想创建我的授权和身份validation类。 我的授权类: //validate api key public class BasicAuthorization : ServiceAuthorizationManager { public override bool CheckAccess(OperationContext operationContext, ref Message message) { //some code } } 我的认证课程 // validation user login & password public class BasicAuthentication : ServiceAuthenticationManager { public override ReadOnlyCollection Authenticate( ReadOnlyCollection authPolicy, Uri listenUri, ref Message message) { //some code } […]

Wcf突然挂起(网络获取操作)

我读了很多关于客户端应该关闭与client.Close()连接的文章,所以不会超出WCF默认限制事实上,我有WCF WebGet操作,基本上只返回一个图像。 [ServiceContract(SessionMode = SessionMode.NotAllowed)] [ValidationBehavior] public interface IImagesService { [OperationContract(Name = “ImagesGet4”)] [WebGet(UriTemplate = “/Image/{partner}/{id}/{image}_{width}_{height}.jpg”)] Stream ImagesGet2(string partner, string id, string image, string width, string height); } 在这种情况下,客户端是浏览器,无论我使用wcf配置做什么都无济于事。 maxConnections,maxReceivedMessageSize,maxBytesPerRead和许多其他参数都被最大化,但仍然没有运气。 编辑:这是附加代码:由服务调用的ImageGet方法: public Stream ImagesGet(string partner, string id, string image, string width = null, string height = null) { WSData.EventLogs.MinimalEventSource.Log.ClientIp(“”); WSData.EventLogs.MinimalEventSource.Log.ServicePath(“”); WSData.EventLogs.MinimalEventSource.Log.Message( DateTime.Now + ” | […]

客户端中的IExtensibleDataObject用法

我已将我的Web服务转换为具有一些数据交换的wcf服务。 作为最佳实践,我们提到并建议DataContracts应inheritance自IExtensibleDataObject。 我明白,在添加或删除数据库的情况下,IExtensibleDataObject很有帮助。 但我无法得到客户端如何访问删除的数据库。 这是我的代码: [ServiceContract(Namespace = “http://mycompany.com/2010/08/”)] public class MyWebService { [OperationContract] public Employee Add(Employee emp) { // Some Processing } } [DataContract(Name = “Employee”, Namespace = “http://mycompany.com/2010/08/”)] public class Employee : IExtensibleDataObject { [DataMember] public string FirstName; [DataMember] public string LastName; public ExtensionDataObject ExtensionData { get; set; } } 现在,在我的下一个Web服务版本中,我对DataContract进行了一些更改 [DataContract(Name = “Employee”, […]

我可以自动为REST WCF服务生成服务引用吗?

我可以看到SOAP WCF over REST(json)wcf的唯一参数是,一旦我的服务被创建,我就可以在visual studio中添加一个引用,我可以为我和一个客户端类添加一个强类型类的负载可以通过我所有的网络方式调用。 据我所知,它甚至设置了web.config。 但是当我公开REST(json)服务时,我仍然得到一个WSDL。 所以我想知道还有办法自动构建我的引用吗?

如何使用WCF从客户端向服务器发送大文件?

如何在C#中使用WCF从客户端向服务器发送大文件? 在配置代码下面。

WCF Web服务调用 – 要捕获的exception?

我有一个调用外部Web服务的程序,我想向用户提供一个友好的对话框,例如服务器关闭,有人切断电缆等。假设以下代码 try { client.MyWebService() } catch(? ex) { // display friendly dialog explaining what went wrong } 我应该在代码中用什么例外代替问号? 当一切工作顺利并且我无法控制外部部件时,很难真正测试这样的情况,因此有些见解会受到赞赏。 谢谢!

如何跟踪WCF序列化问题/exception

我偶尔会遇到在WCF序列化期间抛出应用程序exception的问题(从我的OperationContract返回DataContract之后)。 我得到的唯一(而且意义不大)消息是 System.ServiceModel.CommunicationException:基础连接已关闭:连接意外关闭。 没有任何洞察内部exception,这使得很难找出序列化过程中导致错误的原因。 有人知道如何跟踪,记录和调试这些exception的好方法吗? 或者甚至可以更好地捕获exception,处理它们并将定义的FaulMessage发送给客户端? 谢谢

如何诊断手柄泄漏?

我有一个托管WCF ServiceHost的进程。 根据ProcessExplorer,它会像疯了一样泄漏句柄。 我已经查看了代码,找不到任何明显导致泄漏句柄的内容。 我最接近的是ProcessExplorer提供的句柄列表,但其有用性似乎有限。 有没有其他工具可以帮助诊断手柄来自哪里,比如通过堆栈跟踪或什么? 编辑 我已经安装了Windbg。 当我用它来列出句柄时,它向我显示914句柄属于“事件”类型 – 如果我选择其中一些,并使用!handle xf输出,我在大多数情况下获得与此类似的输出: Type Event Attributes 0 GrantedAccess 0x1f0003 HandleCount 2 PointerCount 3 Object Specific Information Event Type Manual Reset Event is Set 有没有办法进一步深入了解事件的更多信息?

OWin是否支持WCF?

我有一个ac #project,它通过WebApi和WCF公开服务。 它在IIS下运行。 现在我需要提供它作为自主主机解决方案。 我找不到关于Owin的文档以及如何公开WCF服务。 OWin是否支持WCF?

使用WCF进行双向通信

我正在设计一个使用Windows Communication Foundation实现的客户端 – 服务器体系结构。 在其中一个用例中,服务器需要请求客户端的状态,这意味着它需要在客户端上调用SendStatus()方法并询问其状态。 我只是想知道这个用例是否可以使用WCF实现,而无需在客户端创建独立服务。 我正在尝试避免套接字,因为客户端是后台服务,并且基本上始终连接到服务器。 我知道WCF最终使用套接字进行通信,但我特意尝试使用WCF,因为这更像是一个概念validation。 我想到的一种解决方法是客户端可以调用服务器上的SendClientStatus()方法并每隔5秒左右发送一次状态。 但是,这似乎不是一个好方法。 任何帮助,将不胜感激。