Tag: #wcf

使用wsDualHttpBinding超时通过Internet连接到WCF服务

仍在WCF学习曲线上: 我已经设置了一个自托管的WCF服务(WSDualHttpBinding),它可以在我自己的计算机上运行,​​该计算机位于防火墙后面。 如果我在自己的计算机上运行客户端,一切都很好。 现在我将客户端安装在网络外的计算机上,我试图通过动态DNS访问该服务,如下所示: http://mydomain.dyndns.org:8000/MyService : http://mydomain.dyndns.org:8000/MyService : http://mydomain.dyndns.org:8000/MyService 。 我的端口转发问题在前一个问题中得到了解决 ; 我现在可以在浏览器中看到该服务已启动。 但是现在当我尝试在另一台机器上运行客户端时,我收到以下错误消息:“打开操作未在分配的超时00:01:00内完成。分配给此操作的时间可能是一部分更长的超时时间。“ 我已经禁用了服务的安全性,所以不是这样。 还有什么可能阻止连接发生?

WCF服务或Web API

我将参与一个涉及许多元素的项目: ASP.NET MVC网站 C#控制台应用程序 iPhone应用程序 为了使所有这些单独的应用程序与数据库通信,我的直接想法是使用WCF服务。 但是,我现在需要向站点添加API以允许第三方从他们自己的应用程序中选择,插入和更新记录。 在我看来,我只想在我的WCF服务上创建一个单独的RESTful服务端点,该端点将使用身份validation锁定,并且只能访问某些方法。 但是,我今天一直在阅读MVC 4中的Web APIfunction,这是RESTful API的最新function吗? 我是否应该继续使用Web API? 或者因为我的其他应用程序需要Web服务,我应该坚持使用WCF服务吗?

使用自定义WCF正文反序列化而不更改URI模板反序列化

从这篇博文中 ,我能够创建一个使用JSON.NET序列化的自定义WCF IDispatchMessageFormatter 。 它有一点需要注意:与UriTemplate一起使用它并不一定按预期工作。 这是博客文章提供的实现: class NewtonsoftJsonDispatchFormatter : IDispatchMessageFormatter { private readonly OperationDescription od; private readonly ServiceEndpoint ep; private readonly Dictionary parameterNames = new Dictionary(); public NewtonsoftJsonDispatchFormatter(OperationDescription od, ServiceEndpoint ep, bool isRequest) { this.od = od; this.ep = ep; if (isRequest) { int operationParameterCount = od.Messages[0].Body.Parts.Count; if (operationParameterCount > 1) { this.parameterNames = new […]

IIS 7.5,Web服务和HTTP 405错误

我有一个Web服务,我在我的机器上托管。 我使用的是Windows 7和IIS 7.5。 问题 :当客户端尝试使用Web服务时,他/她会收到HTTP 405错误。 在IIS的日志文件中,我可以看到这被拒绝,因为不允许POST动词。 问题 :如何为这些请求允许POST动词? 我是否必须添加WSDL文件的映射? 如果我这样做,我该如何配置此映射? 我已经检查过,在现有的映射中,我对WSDL扩展没有任何帮助。 是否可能在IIS上设置另一个允许这些请求的东西? Web服务是使用WCF构建的。

使用WCF的身份validation服务

我有一个自定义MembershipProvider,如下所示。 它根据Active Directoryvalidation用户名和密码。 我想把它作为“身份validation服务”。 即使客户端使用表单身份validation或Windows身份validation,这也应该有效。 有一个WCF“人力资源服务”,它提供员工信息。 “HR UI”网站正在使用“HR Service”WCF服务。 现在,我们需要确保在访问“HR服务”操作之前,使用“身份validation服务”对使用“HR服务”的任何客户端进行身份validation。 如果客户端应用程序经过一次身份validation,则下次不应再次validation(直到应用程序关闭)。 当打开客户端应用程序的新实例时,需要从头开始进行身份validation。 我们如何实现它? 我们是否有任何代码样本用于端到端流程演示? 注意:我应该能够使用自托管服务进行测试。 注意:客户端可以是任何平台(例如Java)。 namespace LijosCustomValidation { public sealed class LijoMembershipProvider : MembershipProvider { public override bool ValidateUser(string username, string password) { bool isValid = true; //my logic to validate the user name and password return isValid; } //other implementations of Abstract Methods […]

客户端配置以使用WCF JSON Web服务

我已经将Web服务配置为使用Json,如本博客所述: http : //www.west-wind.com/weblog/posts/164419.aspx和其他各种博客,但我无法创建一个客户端来使用它服务。 我尝试了各种各样的东西,但总是有无意义的例外。 实现(我应该添加的WCF)客户端的正确方法是什么?

WCF,接口返回类型和KnownTypes

我正在创建一个WCF服务,我在一些序列化问题上遇到了很多麻烦。 也许只有一种方法可以做到这一点,但我想确认一下这是我的示例代码: 合同 public interface IAtm { [DataMember] double Latitude { get; set; } [DataMember] double Longitude { get; set; } } [ServiceContract] public interface IAtmFinderService { [OperationContract] ICollection GetAtms(); } 服务实施: [KnownType(typeof(Atm))] [KnownType(typeof(List))] [ServiceKnownType(typeof(Atm))] [ServiceKnownType(typeof(List))] public class AtmFinderService : IAtmFinderService { public ICollection GetAtms() { return new List() { new Atm() { Latitude = […]

WCF。 服务通用方法

如何在wcf服务中使用generics方法? 我写了这段代码: [OperationContract] void AddItem(T item); 但是我收到以下错误: 类型“T”无法导出为架构类型,因为它是一个开放的generics类型。 如果所有generics参数类型都是实际类型,则只能导出generics类型。

通过WCF发送图像的有效方式?

我正在学习WCF,LINQ和其他一些技术,从头开始编写自定义远程控制应用程序,如VNC。 我正在创建它,主要考虑三个主要目标: 服务器将在应用程序级别(即无缝窗口)上提供“远程控制”,而不是完全桌面访问。 客户端可以选择服务器上运行的任意数量的应用程序,并接收每个应用程序的图像流。 客户端可以同时连接到多个服务器。 现在我正在使用WCF发送一个表示正在发送的窗口的Bytes数组: using (var ms = new MemoryStream()) { window.GetBitmap().Save(ms, ImageFormat.Jpeg); frame.Snapshot = ms.ToArray(); } GetBitmap实现: var wRectangle = GetRectangle(); var image = new Bitmap(wRectangle.Width, wRectangle.Height); var gfx = Graphics.FromImage(image); gfx.CopyFromScreen(wRectangle.Left, wRectangle.Top, 0, 0, wRectangle.Size, CopyPixelOperation.SourceCopy); return image; 然后通过WCF(TCPBinding,它将始终通过LAN)发送到客户端,并在没有边框的空白窗体中重建,如下所示: using (var ms = new MemoryStream(_currentFrame.Snapshot)) { BackgroundImage = Image.FromStream(ms); } 我想在CPU和内存使用方面尽可能提高这个过程的效率,带宽排在第三位。 […]

我的CustomAuthorizationPolicy.Evaluate()方法永远不会触发

我创建了一个带有自定义授权和身份validation的wcf服务,如您所见: public class AuthorizationPolicy : IAuthorizationPolicy { string id = Guid.NewGuid().ToString(); public string Id { get { return this.id; } } public System.IdentityModel.Claims.ClaimSet Issuer { get { return System.IdentityModel.Claims.ClaimSet.System; } } // this method gets called after the authentication stage public bool Evaluate(EvaluationContext evaluationContext, ref object state) { // get the authenticated client identity IIdentity […]