Tag: #wcf

对于WCF服务,没有证书的TransportWithMessageCredential是否足够安全?

我开发了一个WCF自托管服务,我有两个基本的安全要求,因为它将通过Internet访问: 传输层应防止篡改和嗅探,尤其是检索身份validation凭据。 这就是SSL所做的,但是从我所看到的设置SSL需要安装证书(除非可能通过这个使用普通证书文件的hack ),我不想这样做。 身份validation层应包含用户名/密码validation程序。 我配置我的服务使用: 即使传输层是HTTP(而不是HTTPS),这是否会使WCF创建另一个与SSL等效的安全层? 如果没有,安全强度方面有什么不同? 另外,有没有办法在不使用SSL证书的情况下保护元数据端点(不是必需的但是会受到赞赏)? 以下是我自托管服务的完整配置代码: 谢谢!

WCFexception:找不到与端点的scheme http匹配的基址

我正在尝试在IIS中的单独网站上托管WCF Web服务,其中https为443作为唯一绑定。 当我在使用绑定(http(80)/ https(443))的网站中使用它时,以下配置很有效。 如果我删除http绑定,它会开始抛出以下错误。 无法通过绑定BasicHttpBinding找到与端点的方案http匹配的基址。 注册的基地址方案是[https]。 如何在仅具有https绑定的IIS网站中使其工作? <!—->

为什么在WCF中需要KnownTypeAttribute

我正在学习WCF并且不了解KnowTypeAttribute的真正优势。 有人可以解释我为什么需要它吗?

制作Wcf服务IntegratedWindowsAuthentication

当我在IIS中设置Windows身份validation启用和匿名禁用时,我收到以下错误。 主机上配置的身份validation方案(’IntegratedWindowsAuthentication’)不允许在绑定’BasicHttpBinding’(’Anonymous’)上配置的身份validation方案。 请确保将SecurityMode设置为Transport或TransportCredentialOnly。 此外,可以通过IIS管理工具,通过ServiceHost.Authentication.AuthenticationSchemes属性,在元素的应用程序配置文件中更改此应用程序的身份validation方案,通过更新绑定上的ClientCredentialType属性,或通过调整HttpTransportBindingElement上的AuthenticationScheme属性。 我的Wcf服务的web.config如下…… 请指教..

IDIspatchMessageInspector

我实现了IDispatchMessageInspector.AfterReciveRequest然后我这样配置: 但它不起作用。 我检查我的程序集和我的本地参考,我没有找到Microsoft.WCF.Documentation.InspectorInserter或HostApplication DLL我在网上搜索下载HostApplication DLL但我什么也没找到。 我需要做什么? 我需要实现更多的东西,或者我只需要这个配置。

WCF发现找到端点但主机是“localhost”

我正在尝试使用http://msdn.microsoft.com/en-us/library/dd456783(v=VS.100).aspx作为起点在WCF中使用发现function。 它在我的机器上工作正常,但后来我想在另一台机器上运行该服务。 该服务被正确发现,但找到的服务的主机名始终是“localhost”,当然没什么用处。 服务端点: var endpointAddress = new EndpointAddress(new UriBuilder { Scheme = Uri.UriSchemeNetTcp, Port = port}.Uri); var endpoint = new ServiceEndpoint(ContractDescription.GetContract(typeof(IServiceInterface)), new NetTcpBinding (), endpointAddress); 客户: static EndpointAddress FindServiceAddress() { Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); DiscoveryClient discoveryClient = new DiscoveryClient(new UdpDiscoveryEndpoint()); // Find endpoints FindResponse findResponse = discoveryClient.Find(new FindCriteria(typeof(T))); Console.WriteLine(string.Format(“Searched for {0} seconds. […]

ASP.NET Web App和C#Application之间的双向通信

我需要构建一个双向通信的网站和应用程序。 我将使用ASP.NET构建网站,并使用C#构建应用程序。 我将自己托管该网站,它将与应用程序在同一台机器上运行。 我不知道在两者之间发送数据的最佳技术是什么。 C#应用程序需要一直运行。 我应该构建一个C#控制台应用程序,然后隐藏控制台窗口吗? 或者其他类型的应用程序会更合适吗? 我一直在寻找网络,并找到了几个不同的建议,包括套接字,消息队列,远程处理和WCF。 一些指示将非常感激 – 我是所有这一切的新手。 谢谢。 编辑将使用请求 – 响应模式,Web App始终是实例化请求的模式。 这就是我所说的双向沟通​​。 Web应用程序将向后端应用程序发送请求,后端应用程序将执行一些处理,然后将响应发送回Web应用程序。 JSON将用于来回发送数据。 我将使用SQL Server Express 2008 R2,后端应用程序将是唯一与数据库通信的应用程序。 Web应用程序主要关注表示层。 后端应用程序将具有内存中的对象,这些对象在应用程序启动时实例化(数据从数据库加载),然后持久保存到数据库(执行期间和关闭之前)。 C#Console应用程序是否适用于此类事情?

Tcp Client双向通信帮助

我希望使用客户端和服务器在C#中的两个应用程序或winforms之间进行通信,就像我希望服务器持续监听来自客户端或客户端的传入消息一样,当收到消息时,我想回复发送信息的客户端处理可以任何一个帮助代码示例

使用WCF SOAP API中的HTTP授权标头进行身份validation

我们目前有一个WCF SOAP API,允许使用者使用用户名和密码进行身份validation(内部使用UserNamePasswordValidator )作为参考,用户名和密码在SOAP Body中传递,如下所示: 2013-04-05T16:35:07.341Z 2013-04-05T16:40:07.341Z someusername somepassword 我们还希望另外支持使用者在HTTP Authorization标头中指定凭据,如基本身份validation或OAuth承载令牌 我们已经有几种方法可以实际对非SOAP API进行身份validation,但我不熟悉如何告诉WCF使用我可能为此创建的任何类。 我怎么能做到这一点? 我见过的另一个问题就是尝试回答这个问题 ,但是接受的答案是使用SOAP标头,而不是HTTP标头,而提问者基本上放弃了。 显然,任何解决方案都需要向后兼容 – 我们需要继续支持消费者在SOAP安全标头中指定凭据。

使用RegisterInitializer连接事件处理程序

我有一个WCF服务,它使用Simple Injector进行dependency injection。 我想在容器引导程序中连接一些事件处理程序。 我创建了一个接口IStatusChangeNotification : public interface IStatusChangeNotification { event EventHandler JobStatusChange; } 我的CommandHandler实现了IStatusChangeNotification并且有两个事件处理程序类EmailNotification和MmrNotification ,每个类定义一个Notify()方法。 然后在我的引导代码中,我有以下内容: container.Register(); container.Register(); container.RegisterManyForOpenGeneric(typeof(ICommandHandler), Assembly.GetExecutingAssembly()); container.RegisterInitializer(scn => { scn.JobStatusChange += container.GetInstance().Notify; scn.JobStatusChange += container.GetInstance().Notify; }); 这有效,并收到通知。 我的问题是,这是否是连接事件处理程序的正确/最佳方法? 如何在请求结束时删除处理程序并且无法删除它们会导致内存泄漏?