C# - Inter-process Communication: Named Pipes Or Status Files?
Aug 18, 2011
I'm building a tool that consists of a Webservice that will run commandline tools at specific times. On average there will be running 15-20 CL tools at the same time. Every CL tool runs no longer than about 0,5-1 minute on average. The webservice needs to be able to check each CL's status every 2-3 seconds or so.
I've got some advice about how to do this; named pipes looks likes the best "technical" solution. However I'm wondering if communicating with simple very small text "status" files would be a better, less complicated and less error-risk, way. I prefer the solution that is the most resource friendly.
I have 2 applications that needs to talk to each others. After some research, I wanted to go with managed pipe (namespace system.io.pipes). The problem is, the client must send commands to the server but need to also wait for incoming message from the server at the same time. I tried to go asynchrone but it doesn't work.
The client/server communication will only take place in the same network.I can use TCP, but then I have to configure separate IP ports for every server instance. I can however simply use named pipes so I don't have to think about port numbers and simply use the name of the server instance.There will not be very frequent and/or large data client/server communication. It's some sort of a ERP application that will only communicate once per 30 seconds on average.
I am trying to connect to SQL Server 2008 from my windows application using vb.net through named pipes.
I did some browsing and I found, to connect through named pipes we just have to mention "Initial Catalog =Test_DB; Data Source = np:Server_Name;integrated security=SSPI;".
But this doesn't connect to the server at all. Is this the right way to connect to sql sererver using named pipes?
I'm struggling with finding the best way to implement named pipes IPC with a robust timeout management. I don't mean timeout on establishing a connection but timeout on read/write streams.
All examples I find don't have a timeout implementation.
i have 2 computers - a Server and a Client pc which is running on local area network with MICROSOFT SQL SERVER 2008 R2 Developer kit at the main pc and Client computer will need to connect to SQL SERVER at main pc using connection string.Let me named server computer as 'MAGNA-PC' and the client pc as 'LAC-PC' and database name is 'db_referafriend' so the code for MAGNA-PC(server) connection string is:[code] i GOOGLE and YOUTUBE for almost 2 weeks before i post . I know that i need to configure the sql configuration manager and enable tcp/ip also add a new port at firewall to allow remote connection also add the sqlserver.exe and sqlbrowser in firewall and I have also chosen "Using both TCP/IP and named pipes" under Remote Connections in the SQL Server 2005 Surface Area Configuration. and all of this doesnt work!
I have a form being called form several forms using ShowDialog().
1. Is there a way for called form to know which form called it by receiving a code or key from the calling form?
2. The calling form has a gridview. How can the called form pick up a column's value from the currently highlighted row in gridview in the calling form?
We needed an inter-process reader/writer lock.We decided to use a file and lock the first byte using LockEx and UnlockEx. The class creates a file in the system temp folder when it is created. The file is created with readwrite access and share read|write|delete.We also specify DeleteOnClose so we don't leave loads of temp files laying around. Obviously AcquireReader and AcquireWriter call LockEx with appropriate flags and ReleaseLock calls UnlockEx.We have tested this class using a small application that you can run several instances of and it works perfectly. The application that uses it has a problem, which we have managed to re-produce in another small test app. In pseudo code it is
Create InterProcessReaderWriter Dispose InterProcessReaderWriter without acquiring any locks Launch a child process which takes a reader lock
The first time this runs, it works fine. If you attempt to run it again, while the child process from the first time is still holding the lock, we get an UnauthorisedAccessException when trying to open the file.This appears to be a permission issue, not a sharing violation but all the processes in this test case are running as the same user.
I have certain files that need deleted every time I run my program. There are some files that start with f. and then end with .00000668 or .00005396 and so on. Here is my coding that is not working to delete the f files.
Have the following code which creates a table of all the images in a folder.[code]What I want to do now is group all these by the first two characters and get the total number for each and insert them into individual strings. So for the above example it would be something like:[code]
I'm using system.diagnostics.process to launch a web page in the browser: system.diagnostics.process.start("http://........").
It works well. My question is how to get a return value? What if the browser has failed to launch the address or I'm not connected to internet? Can I catch it by any return value?
Now for a succesful insertion i want to notify the user about a successful save operation.....i.e,i want to display a message "Successful Save Operation"to the user. How to do this using the Status Strip?
How to use output of one window as input for other window's code like in vb we can do the following:
Public Class Form1 Public x As Integer Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click[code]....
here x is a variabke in form 1 and can be used in form2 how can i do this in wpf
i am trying to make a console app that basically makes a big X between pipes, but with a fixed line on the bottom where you can freely move a <#> with the arrow keys i did the giant x but i have no clue how to make the fixed line and i cannot find any information about it. i tried using the Console.write() but that only gives move a line that i cant use. Il paste the code i have to far.
I've got the code to display the current browser status text in the status bar but i want it to display the name of my web browser aswell. Example: Dreamincode.net - (Name of Webbrowser)
He is my code for the displaying staus text. Private Sub webBrowser1_StatusTextChanged( _ ByVal sender As Object, ByVal e As EventArgs) _ Handles webBrowser1.StatusTextChanged
I'm trying to develop a windows application where i can get connected to remote server and look for process state going in remote server.We have many remote servers where automatic installation of software going on. We have an xml file(installstatus.xml) where it tells us at what stage the installation is (Example : Inprogress , Completed, Failed.)
So our aim is to develop a windows application where i can get connected to that servers and look for their installation status(may be we can use installstatus.xml to look for installation status). Every time i connect to a server, the server information should get stored in XML file(i want to create a xml file where all the servers list i connect to should get stored)
The UI at left side should will have list of servers i can connect to. When i get connected to server, at right side of UI, i want to display the status of installation (In progress, failed , completed).
catalsyt control center can not be open im monitor display, the warning says command line intrface has stoped working already try to downlowload new dr
I have a backup class it copys every thing but the unmovable files witch in return when i test the dive that i just backed up all files to will not boot up missing win system32 config files??how would i add permission to my code??? or how do i over ride cant copy file because a nother process is useing it?
so my GF have a virus that sends messages to other contacts from her skype so i was wondering if i cant track it by checking if some process is using the skype communication protocol or the exe itself. while i mess with it i notice that the skype message pop up with the question if i allow my program to access it when i was using the communication protocol.
I am writing a manager for an app that we use at the office. I have successfully written launching, monitoring, and managing number of instances using the process class.Each file is the data output for one study. Each of the 2-8 instances of the application will run 1000 studies overnight. The fault would be that the file stops growing. I cannot just check for that, because it also stops growing when it done with one study. I need to be able to determine which files are being written by which threads (or vis-versa where i know which files are 'running' and need to see who owns them)?
I have a program that processes files in a special subdirectory and the program processes the files based upon the "Type", i.e., "Text Document". If an application, such as a text editor, installed onto the system, the "Type" may change to suit that application. For example, I recently had one change the type from "TXT File" to "UltraEdit Document (.txt}". Yes, the squirrely brace was on the end, don't know why. Well, after this app was installed, my program found no files of "TXT File" type to process even though the subdirectory was full of filename.txt files.
So, how can I get the code to look at the file extension, not the Type? A few lines of the code are shown: Private fsFile As Scripting.File
If FolderBrowserDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then Dim myFileDir = New System.IO.DirectoryInfo(FolderBrowserDialog1.SelectedPath) For Each myFiles As System.IO.FileInf
I was wondering about something: is there a way to communicate with another program/process on the PC without using files? What would this look like? Is there a search term I can use to get more info? This is not a vb.net question per se, but a general software question.
I have a process of copying files from one path to other in my application. The problem that I am facing is, when the copy process starts. my application will be busy for that amount of time and cant do any work. So I want to make this copy process to be in background as a separate process without making the application to hang. (Visual Studio 2010 Ultimate)
I made an application that uses text files from a folder and i included that folder's path in the code, How can I make the VB take these files with the .exe file and make it work probably?