Tag: #wcf

在面向服务的体系结构中为服务调用定义方法签名的最佳实践是什么?

在面向服务的体系结构中开发应用程序时,定义服务调用原型/签名的最佳实践是什么。 例如,我想创建服务调用以发送电子邮件。 假设我的域层中有以下对象 [datacontract] public class Email { public string To { get; set; } public string From { get; set; } public string Message { get; set; } public string Subject { get; set; } //I am not going to use this properties in send email method public string OtherProp1 {get; set;} public string […]

创建一个wcf服务后,如何判断wsdl中的restful或soap?

我创建了一个服务,然后我看到一个页面说: 您已创建了一项服务。 要测试此服务,您需要创建一个客户端并使用它来调用该服务。 您可以使用命令行中的svcutil.exe工具执行此操作,语法如下: 但是如何判断它是SOAP还是REST服务呢? 我怎么从wsdl等告诉我? 服务配置: 更新: 嗨马克, 我的配置是: 所以基本上我浏览到.svc文件,我看到了一个wsdl的链接。 但是,我如何知道SOAP或REST端点是否存在。 我是否正确配置了它? 谢谢 更新:17:49(英国时间) marc_s更新:18:22(英国时间) Pete,试试这个 – 没有元数据发布,没有 – 只是webHttpBinding – 你不应该再看到任何WSDL了……

WCF – 调用WCF服务的WCF客户端的“目标”错误未提供服务证书

我正在尝试使用带有证书的Message安全性在WCF中创建测试服务/客户端。 我正在使用Visual Studio创建的基本服务,并从我设置为客户端的另一个项目调用它。 我创建了两个证书,一个用于服务器,另一个用于客户端,并将它们导入我的证书存储区。 我也按照以下说明操作: http : //msdn.microsoft.com/en-us/library/ms733098.aspx 但是,没有运气。 从客户端调用服务器时,我收到错误: 目标’http:// localhost:1704 / Service1.svc’未提供服务证书。 在ClientCredentials中指定服务证书。 我的服务配置如下: 我的客户端配置是: 我正在调用客户端中的服务: ServiceReference1.Service1Client client = new ServiceReference1.Service1Client(); string s = client.GetData(1); label1.Text = s; client.Close(); 谁能告诉我我做错了什么?

WCF,Claims,ADFS 3.0

我正在尝试了解使用WCF,Claims和ADFS 3.0开发框架所需的内容。 内部用户将针对Active Directory进行身份validation,外部用户将针对SQL Server表进行身份validation,并且授权将存储在实现组和权限的数据库表中。 我正在使用WCF而不是Web Api或OWIN创建API。 我对使用Identity Server或第三方产品不感兴趣,我只是想知道如何创建自定义安全令牌服务以从我的成员资格表中读取并通过我的组和权限表设置声明。 我找不到任何关于此的信息。 Visual Studio 2015中没有Identity和Access控件,似乎没有使用WCF,仅使用Web Api,OWIN和MVC?

WCF并行模拟

我有一个带有“ImpersonationOption.Required”的WCF服务。 使用并行性时,模拟似乎没有流过。 例如: Parallel.ForEach(items => results.Add(SystemUtil.WindowsUser.Name) 将使用模拟用户返回一个数字,并使用app pool用户返回一个数字。 是否可以假冒并行工作? 最好, 渣 更新: 这是IIS服务端的实际代码。 [OperationBehavior(Impersonation = ImpersonationOption.Required)] public string[] WhoAmI(int numOfTests) { var tests = new List(); for (var i = 0; i < numOfTests; i++) tests.Add(i); var results = new ConcurrentBag(); Parallel.ForEach(tests, (test) => results.Add(WindowsIdentity.GetCurrent(false).Name)); return results.ToArray(); } 如果我传入numOfTests = 10,它会生成10个任务并返回每个任务的WindowsIndentity名称。 我得到的是~70%“IIS APPPOOL.NET v4.0”和~30%我。 如何设置它以使我的身份始终进入Parallel.ForEach? […]

WCF MaxConcurrentSessions已超出

我遇到了公司申请的问题。 我将总结系统的关键要素: 我公司的系统在Windows XP和7(Home,Pro,Basic)机器上运行了几年。 它是用.NET 4.0编写的,基于WCF。 它使用默认限制值(MaxConcurrentSessions = 100 * CPU(4):足以支持我们的工作负载)。 主要服务由独立的deamon进程(不是IIS)托管。 主服务配置为Multithraded / PerSession实例。 该协议是Reliable NET.TCP。 不超过10个客户端同时访问该服务。 问题是,只有在Windows 7上,间歇性地,由于MaxConcurrentSessions限制(不可能!!!),我得到(我发现WCF完全跟踪日志)“服务器太忙的exception”。 你对这种奇怪的行为有什么看法吗? 谢谢你,祝你新年快乐! 安东尼奥

在WCF中自定义SOAP Header名称空间前缀

我写过关于在wcf生成的SOAP消息中自定义名称空间和名称空间前缀的方法。 但是,我找不到在Message类中重写的正确方法,以便自定义消息的SOAP标头。 我想发这个消息: IFD_1.4 看起来像这样: IFD_1.4 区别在于第一个标题的名称空间是“if”而不是“f”。 有没有办法使用自定义MessageFormatter与自定义Message类?

基于可选搜索参数使用entity framework选择数据

我有一个使用EF与数据库连接的项目。 它通过WCF Web服务完成此操作。 这是我的第一个EF项目,我正在尝试研究如何基于可选参数构建查询。 我的Web服务与EF中的类具有匹配字段的数据协定。 Web服务与数据库联系,填充这些客户端类并将它们传递回客户端。 举个例子…. 在Web服务中 [DataContract] public class MyMovie { [DataMember] public int MovieId; [DataMember] public string MovieName; [DataMember] public int MovieRatingId; [DataMember] public string MovieRunTime; [DataMember] public string MovieIMDBUrl; [DataMember] public DateTime MovieDateAdded; [DataMember] public List Actors; [DataMember] public List MediaFiles; } public class MyMovieActor { [DataMember] public int ActorId; [DataMember] […]

不推荐自我跟踪实体。 什么是?

阅读有关EF 5.0和n层解决方案的msdn信息, 请参阅链接 ,似乎MS不建议使用STE,并且也不建议使用POCO / DTO方式,因为它很难说。 并非所有(可能不是很多?)应用程序都适合使用WCF数据服务。 那么走的路是什么? 我的场景是一个当前的大型服务器(WebServices)应用程序,有许多客户端(只有我们自己的),主要是WinForms。 今天,DataSet用于发送数据并跟踪对SQL Server数据库的更改。 我们现在开始用WCF替换WebServices,并且还在考虑使用entity framework。 我们不需要代码或迁移,因为我们已经拥有了数据库以及许多将被重用的存储过程。 由于我们对客户不是我们自己的任何问题,STE似乎是一个不错的选择,但我们不想开始使用EF团队显然不再推荐的东西了。 POCO / DTO也是另一种选择,尤其是与客户的明确分离。 我知道CUD还有更多的工作要做,但是建议是远离它是如此困难,然后我不知道我们是否想走这条路。 然后,根据建议我们应该使用WCF数据服务或Web API,但这实际上不是基于操作的服务的替代方案,需要灵活的协议/格式等。 所以我的问题是,今天最佳做法是什么?

表达式树序列化器

我想在客户端使用Linq表达式,序列化它们并在服务器端执行它们。 为此,我想使用: http : //expressiontree.codeplex.com/ 但我想再次执行它们自己的WCF调用。 这意味着我在WCf方面有一个电话: ImageDTO[] GetImages(XElement exp); 我现在希望在客户端有一个IQueryable(我可以在其上执行Linq表达式),并且我在Serverside上有一个IQueryable(从我的数据访问层,我希望执行序列化表达式)。 但我不知道该怎么做,我没有找到任何例子…… 在客户端我认为我应该在一个类中实现Query,这个类我在构造函数中告诉我使用我的QueryProvider实现(从我调用WCF服务的地方)。 但我不确定这是否正确…… 也许有人可以帮助一个例子。