Tag: #wcf

使用IIS或使用Windows服务进行自托管的WCF服务托管的选择

我们希望使用Asp.Net MVC 3开发新产品。这里的关键点是我们通过WCF Web服务与数据库交谈的所有内容。 我们正处于需要决定是否在IIS中托管WCF Web服务或使用Windows服务自托管的阶段。 我提出这个问题只是因为我想知道,主机WCF服务能满足我以下条件的更好选择。 我们期待120个并发请求/秒。 (可能每天12,000请求/访问) 安全方面(特别是WCF服务安全性) 可维护性 同时处理用户的并发请求(Windows Service可以处理与IIS相比的多个并发请求吗?) 请告诉我是否使用Windows服务进行IIS托管或自托管。 提前致谢。 (有人可以就此提出建议,因为这是决定进一步处理的一个非常关键的部分。)

是否有可能使用数千个长时间运行的TCP连接创建可伸缩的WCF服务?

我正在尝试创建一个WCF服务,其中数千(~10,000)个客户端可以通过双工NetTcpBinding连接很长一段时间(几周,也许几个月)。 经过一些阅读后,看起来在IIS中托管比自定义应用程序或Windows服务更好。 使用WCF这样的服务是否可以接受,甚至可能? 如果是这样,我可以在哪里遇到限制或性能问题,例如增加WCF ListenBacklog和MaxConcurrentConnections? 谢谢!

WCF:通用接口的序列化是否可行?

我正在尝试实现一个服务契约,其中包含一个采用通用接口的方法,并且该generics接口本身具有一个接口参数。 我用ServiceKnownType修饰了服务接口,我用常规的KnownType修改了服务实现,并且我用常规的KnownType修饰了datacontract实现: [ServiceContract(SessionMode = SessionMode.Required, CallbackContract = typeof(ICallbacks))] [ServiceKnownType(typeof(Batch))] [ServiceKnownType(typeof(Command))] public interface IActions { [OperationContract] IResponse TakeAction(IBatch commands); } [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Reentrant)] [KnownType(typeof(Batch))] [KnownType(typeof(Command))] internal class Actions : IActions { } [DataContract] [KnownType(typeof(Command))] public class Batch : IBatch { } 为了记录,我在那里有批处理,因为看起来你只能表达一个generics类型的知识类型 – 它似乎发出BatchOfanyType,但我不知道如何处理它。 我得到的例外是“将任何静态未知的类型添加到已知类型列表中 – 例如,通过使用KnownTypeAttribute属性或将它们添加到传递给DataContractSerializer的已知类型列表中。” 有什么明显的我做错了吗? 是否不支持接口的通用接口? 为了记录我在这个项目的C#2.0和.NET 3.0上。

用于将Windows应用程序连接到MVC 4的Web服务或Web API?

在搜索了我应该使用的一整天后,我不确定哪种选择最适合我的需求,所以我希望有经验的人可以帮助我。 我有一个winforms应用程序( c# )和一个ASP.NET MVC 4 Web应用程序( c# )。 我想连接这些,目标是从我在MVC 4项目中使用的数据库发送和接收数据,但是从windows窗体应用程序中。 我从Windows窗体应用程序发送到数据库的数据然后由MVC 4 Web应用程序使用。 我是Web服务/ Web Api的新手,所以我无法真正决定哪种选择最好。 任何帮助将非常感激..

带有订户缓存的WCF Pub / Sub

问题:如何使用WCF提供分布式,可扩展和抗灾的发布/订阅服务。 细节: 请注意,除了消息/中间件解决方案(如Tibco EMS)之外,还考虑采用此方法。 我一直在研究WCF,特别是它如何用于提供pub / sub。 关于这个主题,这篇文章非常好: WCF pub-sub 。 在文章中,作者试图解决拥有多个发布者的问题(就像在几个框中扩展服务层一样)。 问题是如果客户端A向发布者A注册但发布者B希望发布事件,则发布者B将不知道客户端A.即没有人告诉发布者B客户端A想要被通知事件。 作者建议将pub / sub服务作为解决方案。 发布/订阅服务将集中存储订阅。 但是,如果我想通过二级/双发布/订阅服务使pub / sub服务具有抗灾能力,那么我就有了同样的原始问题。 所以,我认为这个问题有几个解决方案: 将订户详细信息存储在分布式缓存中(请参阅问题: q1和q2 )。 将订户详细信息存储在数据库/中央文件系统中。 任何人都可以想到任何其他解决方案(即我没有错过WCF的一些奇妙的神奇function?)任何评论赞赏。

DataContractJsonSerializer不适用于格式化的JSON?

当使用DataContractJsonSerializer反序列化JSON时,如果输入中有选项卡(格式化JSON),则序列化程序会抛出exception(如下所示)。 如果我用“”替换所有空格,制表符和换行符,则序列化程序可以很好地反序列化它。 这是怎么回事? 例外 System.MemberAccessException: Cannot create an abstract class. at System.Runtime.Serialization.FormatterServices.nativeGetUninitializedObject(RuntimeType type) at System.Runtime.Serialization.FormatterServices.GetUninitializedObject(Type type) at System.Runtime.Serialization.XmlFormatReaderGenerator.UnsafeGetUninitializedObject(Int32 id) at ReadBaseSearchElementFromJson(XmlReaderDelegator , XmlObjectSerializerReadContextComplexJson , XmlDictionaryString , XmlDictionaryString[] ) at System.Runtime.Serialization.Json.JsonClassDataContract.ReadJsonValueCore(XmlReaderDelegator jsonReader, XmlObjectSerializerReadContextComplexJson context) at System.Runtime.Serialization.Json.JsonDataContract.ReadJsonValue(XmlReaderDelegator jsonReader, XmlObjectSerializerReadContextComplexJson context) at System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson.ReadDataContractValue(DataContract dataContract, XmlReaderDelegator reader) at System.Runtime.Serialization.XmlObjectSerializerReadContext.InternalDeserialize(XmlReaderDelegator reader, String name, String ns, Type declaredType, DataContract& dataContract) at […]

从WPF / XBAP应用程序检测网络连接?

有没有办法确定XBAP(浏览器中托管的WPF)应用程序是否具有网络连接? 如果没有,用C#和.NET编写的传统Windows客户端如何确定它是否具有连接性? 基本上,用例是在通过WiFi连接到Intranet的移动笔记本电脑上运行的XBAP应用程序。 笔记本电脑将无法连接到Internet。 WiFi连接可能存在也可能不存在,这取决于用户当时的位置。

WCF流式文件传输在.NET 4上

我需要一个关于WCF流式文件传输的好例子。 我找到了几个并尝试了它们,但post很旧,我在.net 4和IIS 7上玩耍,所以有一些问题。 你能给我一个很好的,最新的例子吗?

自托管WCF服务:如何从托管应用程序访问实现服务合同的对象?

我在WPF客户端中自托管WCF服务。 我想显示服务在用户界面中收到的数据。 每次收到一些数据时,都应更新用户界面。 “App.xaml.cs”中的代码如下所示 private ServiceHost _host = new ServiceHost(typeof(MyService)); private void Application_Startup(object sender, StartupEventArgs e) { _host.Open(); } private void Application_Exit(object sender, ExitEventArgs e) { _host.Close(); } 如何从托管WPF应用程序获取实现服务合同的对象实例? 谢谢大家的答案。 我没有看到的是ServiceHost的构造函数允许传递服务的实例而不是其类型 。 所以我现在做的是: 在服务实现中使用ObservableCollection 将服务配置为单例(请参阅burningmonk的注释) 绑定到我的WPF应用程序中的ObservableCollection 使用数据绑定属性DataContext获取服务的实例 将它传递给ServiceHost的构造函数 结果:单例WCF服务中的每个更新都反映在UI中。 快乐!

如何在WCF Rest Service中传递多个参数?

我正在用C#开发WCF REST服务。 它适用于单个参数。 现在我需要扩展它以支持多个参数。 请帮我解决这个问题。 提前致谢… 在界面中使用以下声明: [OperationContract] [WebInvoke(Method = “POST”, ResponseFormat = WebMessageFormat.Xml, RequestFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.WrappedRequest, UriTemplate = “login”)] resLogin Login(reqLogin rData, int floorId);