Articles of wcf

在Windows窗体应用程序中托pipeWCF服务

我需要在Windows窗体应用程序中托pipeWCF服务,并从Windows服务调用WCF服务,该服务将数据发送到WCF服务,WCF服务将在Windows窗体应用程序(桌面应用程序)中显示它。 我怎样才能实现呢? 我需要以前正确工作的代码。

共享Windows主机上的Windows服务

我有不断从源中下载XML并将其保存到数据库的过程 。 我有一个Windows虚拟主机 。 我的问题是我应该使用什么.. WCF或Windows服务或Web服务 。 我不能使用ASP.net,因为它只会在通话中运行…但我需要它运行24/7 。 你可以guyzbuild议我如何devise它? 我写了一个Windows服务,但无法在服务器上运行它。 我的托pipe服务提供商是Hostgator.com

两个不同应用程序之间的通

我们在单机上运行两个应用程序,其中一个是通过读取xml文档来响应每个请求的web应用程序。我们希望添加一个情况,即当新的xml文件被创build或现有的文件被replace时,应用程序不能读取文件直到其全部更改,并且在发生这种情况时,它必须用旧文件进行响应。 由于Web应用程序在请求/响应周期中工作,我们认为这个周期不应受到干扰,因为在实时运行的系统中,文件更改和请求时间之间的时间被遮蔽了,所以我们必须拆分文件读取过程。为此,我们使用FileSystemWatcher在本地机器与Windows或控制台应用程序(或其他一些说,使用WCF代替)。 现在我们在上面的例子中提出质疑,说我们应该如何沟通这两个(或更多)应用程序?

使用WCF作为服务运行的Log4Net

我正在运行一个WCF服务作为Windows服务。 我无法获得log4net做任何实际的日志logging 在什么app.config我应该把我的configuration代码为log4net。 服务主机app.config服务app.config或服务调用的基础方法? -b

创build命名pipe道(WCF)所需的最低操作系统权限

我有一个运行在login用户的上下文中的exe文件。 该exe使用WCF使自己成为一个命名pipe道服务器(它将被多个客户端调用)。 用户是否需要exe的特定权限才能创build命名pipe道? 我已经尝试以相当小的权限(即在本地用户组)中作为用户运行,并且这种方式正常工作 – 但是我担心,当我部署到客户端网站时,用户可能会受到某种限制意味着命名pipe道创build不起作用。

WCF wsHttpBinding的Windows身份validation有多安全?

我已经创build了WCF,并使用wsHttpBinding和MTOM作为消息传输,并将其作为“Windows”进行了身份validation。 现在我的服务不是当前的SECURE,它是普通的HTTP,运行在自定义的端口上。 WCF的wsHttpBinding的Windows身份validation是安全的吗? 任何人都可以看到密码或猜测通过networking跟踪? 环境信息: 在互联网上托pipe 没有Active Directory,它的单个服务器 从我的办公室连接服务器的pipe理员用户名和密码 在客户端,configuration文件中没有提到密码,它是在运行时input的。 它正常工作,因为input错误的凭据也会返回某种安全exception。 在自定义端口89上运行.NET 4.0,目前我已经在我的自定义Windows服务的app.config中设置了以下configuration,我将WCF作为本地服务安装在自定义Windows服务中。 我已经启用模拟每个方法。 这是app.config <system.serviceModel> <behaviors> <serviceBehaviors> <behavior name="metaAndErrors"> <serviceMetadata httpGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="true" /> <dataContractSerializer maxItemsInObjectGraph="2147483647"/> <serviceAuthorization impersonateCallerForAllOperations="true"/> </behavior> </serviceBehaviors> </behaviors> <services> <service name="CustomServiceHost.CustomService" behaviorConfiguration="metaAndErrors" > <endpoint address="" binding="wsHttpBinding" bindingConfiguration="wsHttpLargeBinding" contract="CustomServiceHost.ICustomService"/> <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> <host> <baseAddresses> <add baseAddress="http://localhost:89/CustomService" /> </baseAddresses> </host> […]

WCF Windows服务超时

我有一个客户端应用程序开发.net seding一个请求wcf服务,应该发送响应。如果执行时间在1分钟,没有错误,如果超过1分钟的错误是 内部exception:发送到net.tcp:// localhost:18001 / PitToPort / 2008/01/30 / StockpileService / tcp的请求操作未在configuration的超时(00:01:00)内收到回复。 分配给此操作的时间可能是更长时间的一部分。 这可能是因为该服务仍在处理该操作或由于该服务无法发送回复消息。 请考虑增加操作超时(通过将通道/代理强制转换为IContextChannel并设置OperationTimeout属性),并确保服务能够连接到客户端 如何增加超时和如何? 什么是最好的解决scheme?

ServicePoint.Expect100继续Windows商店应用程序

正如标题所说,我需要为我的应用程序设置此标志为false,如下所示: ServicePoint.Expect100Continue = false; 然而,ServicePoint和ServicePointManager都不可访问,我找不到另一种方法来设置此属性。 另外,没有app.config,所以通过configuration来设置也是不可能的。 如果我没有把这个设置为false,这个标志被发送到请求中,并且发生CommunicationException。 我不能更改服务器代码,我只是服务器数据的消费者。 该服务添加了“添加服务引用”对话框。 任何方法调用都会导致: The underlying connection was closed: An unexpected error occurred on a receive. 当我调用相同的服务时,从控制台应用程序添加“添加服务引用”,有同样的错误。 原因是Expect100Continue属性。 如果我使用通常的方法删除它,它在控制台应用程序中工作。 所以,我想知道Windows Store应用程序的等效物。

IP端点0.0.0.0:13000上已经有一个监听器。 ?? (使用WCF的TCP)

我试图找出为什么即使在重新启动计算机后使用该端口! System.ServiceModel.AddressAlreadyInUseException:IP端点0.0.0.0:13000上已有一个侦听器。 如果另一个应用程序已经在此端点上侦听,或者您的服务主机中有多个具有相同IP端点但具有不兼容的绑定configuration的服务端点,则可能会发生这种情况。 —> System.Net.Sockets.SocketException:System上的System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot,SocketAddress socketAddress)通常只允许使用每个套接字地址(协议/networking地址/端口)。 Net.Sockets.Socket.Bind(EndPoint localEP)在System.ServiceModel.Channels.SocketConnectionListener.Listen()—内部exception堆栈跟踪结束—在系统的System.ServiceModel.Channels.SocketConnectionListener.Listen()。 System.ServiceModel.Channels.ConnectionAcceptor.StartAccepting()System.ServiceModel.Channels.ExclusiveTcpTransportManager.OnOpen()上的System.ServiceModel.Channels.TransportManager.Open(TransportChannelListener channelListener)上的ServiceModel.Channels.TracingConnectionListener.Listen()。 ServiceModel.Channels.TransportManagerContainer.Open(SelectTransportManagersCallback selectTransportManagerCallback)at System.ServiceModel.Channels.TcpChannelListener`2.OnOpen(TimeSpan timeout)at System.ServiceModel.Channels.Communicat 在System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan超时)在System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan超时)System.ServiceModel.Dispatcher.ChannelDispatcher.OnOpen(TimeSpan超时)上的ionObject.Open(TimeSpan超时)。 ServiceModel.Channels.CommunicationObject.Open(TimeSpan超时)在Microsoft.Tools.SvcHost.ServiceHostHelper.OpenService(ServiceInfo信息)System.Net.Sockets.SocketException(0x80004005):每个套接字地址(协议/networking地址/端口)通常允许在System.Net.Sockets.Bind(EndPoint localEP)上的System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot,SocketAddress socketAddress)在System.ServiceModel.Channels.SocketConnectionListener.Listen() 你如何找出哪个进程在监听那个端口(13000)? Netstat在该端口上没有显示任何内容。 这是我的App.config: <system.web> <compilation debug="true" /> </system.web> <!– When deploying the service library project, the content of the config file must be added to the host's app.config file. System.Configuration does not support config […]

从自己的线程停止IIS网站

我正在使用下面的代码来阻止我的WCF服务从它自己的线程来更新我的服务使用的一些文件。 try { var server = new ServerManager(); var site = server.Sites.FirstOrDefault(s => s.Name == "Default Web Site"); if (site != null) { Thread.Sleep(1000); site.Stop(); if (site.State == ObjectState.Stopped) { Thread.Sleep(5000); } site.Start(); } else { throw new FaultException("Server Are Trying To Stop Is not Found"); } } catch (Exception ex) { throw new FaultException(ex.Message); […]