Tag: #wcf

将WCF服务限制为特定用户帐户的最佳方法

我将使用Window Service / Service Host托管基本的HTTP WCF服务。 我想将服务限制为2个特定窗口活动目录用户,这些帐户将在PRD和DEV环境之间变化,因此它们将在配置文件中设置。 我想知道最好的方法是什么,我通常知道如果我使用IIS托管服务,那么我可以在Web.config中限制它: http : //www.rickgaribay.net/archive/2007/04/ 04 / recipe-wcf-basichttpbinding-with-windows-authentication.aspx然而,因为我使用ServiceHost进行托管,所以我不相信这是一个选项。 根据我的阅读,似乎可以使用服务类级别的PrincipalPermission声明属性来执行此操作: http : //msdn.microsoft.com/en-us/library/vstudio/ms731200(v = vs.100).aspx但是我不太清楚这是否会通过窗口服务的窗口帐户或发出HTTP请求的帐户。 我需要的是传递HTTP请求帐户。 此外,使用声明属性,是否可以使用配置文件属性而不是硬编码属性? 任何建议,如果您需要更多信息,请告诉我。

WCF – 在nettcpbinding中禁用安全性(c#)

我正在尝试创建一个使用nettcpbinding的自托管WCF应用程序,但在没有域的环境中工作。 它只是两个常规的Windows PC,一个是服务器,另一个是客户端。 这个问题是,当我尝试让客户端连接它时,由于安全设置而被拒绝。 你能否指出我如何使这个场景发挥作用的正确方向? 我应该(如果可能)禁用安全性吗? 有另一种(希望很简单)的方法来实现这一目标吗? 问候, 丹尼尔

“从另一方收到了一个无担保或错误安全的故障”

我越来越: “从另一方收到了一个不安全或不正确安全的故障。请参阅故障代码和详细信息的内部故障exception。” 我在客户端做了这个,我在控制台应用程序中也做了同样的事情,但是这个错误可能会发生冲突。 我也检查了app.config 。 代码是: 有谁有想法吗?

WCF服务,为每个新请求创建一个新线程

有没有办法配置WCF服务来创建一个新的线程来处理任何新的传入请求?

WCF IList序列化问题

我有一个对象,其中包含从WCF Web服务方法返回的通用IList: [DataContract(Name = “PageableList_Of_{0}”)] public class PageableResults { [DataMember] public IList Items { get; set; } [DataMember] public int TotalRows { get; set; } } [OperationContract] PageableResults ListCI(); 当我在服务上调用此方法时,它会执行整个方法,但最后会抛出System.ExecutionEngineException而不会发生InnerException。 我已经尝试返回一个具体的List 对象,这似乎有效,但不幸的是我需要找到一个解决方法来返回一个IList。 我需要输入任何属性来解决这个问题吗?

通过WCF记录而不会降低速度

我们的应用程序中有一个大型进程,每月运行一次。 此过程通常在大约30分钟内运行,并生成342000左右的日志事件。 最近我们使用WCF将我们的日志记录更新为集中模型,现在性能有问题。 以前的解决方案将在大约30分钟内完成,而新的日志记录现在需要3到4个小时。 看起来问题是因为应用程序在执行继续之前实际上正在等待WCF请求完成。 WCF方法已经配置为IsOneWay,我将客户端的调用包装到另一个线程中的WCF方法,以尝试防止此类问题,但它似乎没有工作。 我曾经考虑过使用异步WCF调用,但在我尝试别的东西之前想过我会问这里是否有更好的方法来处理这个问题。

关于CodePlex表达式树序列化库的观点?

有人尝试过这个代码库并对此有意见吗? http://code.msdn.microsoft.com/exprserialization 10倍

如何从json序列化中排除特定类型

我正在将对WCF Web服务的所有请求(包括参数)记录到数据库中。 这就是我这样做的方式: 创建一个类WcfMethodEntry,它派生自PostSharp的方面OnMethodBoundaryAspect, 使用WcfMethodEntry属性注释所有WCF方法, 在WcfMethodEntry中,我使用JsonConvert.SerializeObject方法将方法参数序列化为json并将其保存到数据库中。 这工作正常,但有时参数非常大,例如一个自定义类,带有几个带有照片,指纹的字节数组等。我想从序列化中排除所有这些字节数组数据类型,这将是最好的方法做到了吗? 序列化json的示例: [ { “SaveCommand”:{ “Id”:5, “PersonalData”:{ “GenderId”:2, “NationalityCode”:”DEU”, “FirstName”:”John”, “LastName”:”Doe”, }, “BiometricAttachments”:[ { “BiometricAttachmentTypeId”:1, “Parameters”:null, “Content”:”large Base64 encoded string” } ] } } ] 期望的输出: [ { “SaveCommand”:{ “Id”:5, “PersonalData”:{ “GenderId”:2, “NationalityCode”:”DEU”, “FirstName”:”John”, “LastName”:”Doe”, }, “BiometricAttachments”:[ { “BiometricAttachmentTypeId”:1, “Parameters”:null, “Content”:”…” } ] } } ] 编辑:我不能更改用作Web服务方法的参数的类 – 这也意味着我不能使用JsonIgnore属性。

使用C#通过SOA方法进行身份validation

我正在重建一个网站,我正在尝试使用SOA方法。 当前的网站是在.NET 2.0中使用现成的SqlMembershipProvider。 我们试图消除与数据库的直接连接,并通过WCF服务层推送所有内容。 我们正在使用的方法是将所有内容分开 – 有一个用于模型和接口的库,一个用于服务的库,以及一个用于服务代理的库。 到目前为止,最大的障碍是弄清楚如何管理用户身份validation及其会话。 使用这种方法做到这一点的最佳方法是什么。 我们应该废弃.NET成员资格模型并使用类似OpenId的东西,只是允许用户将他们的数据重新连接到新帐户吗? 我已经做了一些搜索,并且找不到很多关于如何管理这个,但我知道它已经完成了。

记录服务SOAP请求和响应

我试图在C#中记录服务的soap请求和响应消息。 我有一个现成的肥皂扩展,它可以完成所有这些,但是我无法将其添加到服务方法中。 由于我的VS项目中添加了服务引用而不是Web服务引用,因此当我检查此服务的引用文件时,我看不到调用远程服务的方法。 我看到的所有示例都是添加到Web服务,它具有不同的参考格式。 在这种情况下如何记录soap消息?