|
I have created a windows service (in VB, using VS 2010) and once I have it installed and attempt to run it, I receive the following error in the event viewer:
Service cannot be started. System.InvalidOperationException: Cannot change service name when the service is running.
at System.ServiceProcess.ServiceBase.set_ServiceName(String value)
at PostProcessing.PostProcessing.InitializeComponent()
at PostProcessing.PostProcessing.OnStart(String[] args)
at System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(Object state)
I have a feeling that this has to do with the installer, but not sure what to check. All of the names are "PostProcessing". Anybody have an idea for me? Thanks.
|
|
|
|
|
OK, looking the stack trace, in your OnStart handler, you're calling an InitializeComponent method. You normally don't see that in a service at all, but you do in Windows Forms apps. Makes me wonder what you're doing...
From the InitializeComponent method, you're doing something with a ServiceBase object. Perhaps you inherited that in a class of yours??
Perhaps you're setting a Name property somewhere you shouldn't be??
It's easy enough to trace. Put a Thread.Sleep in your OnStart method for, say, 20 seconds. Then set a breakpoint on a line just after the Sleep. Start the service, then go to Visual Studio and in the Debug menu -> Attach to Process... Find your service and attach to it. When you hit the breakpoint, you can step through the code line-by-line and watch what happens.
|
|
|
|
|
Your reply made the error make sense. Esp. the "InitializeComponent" piece. I wanted to use a windows service so that I could use the timer to schedule it rather than schedule a task to run as a user. I have moved the project to a windows form, and will use a service to run the program instead. Most likely what I want to do would not work as a service anyways...
My objective: Multiple transactions against a remote server, sending and receiving JSON, deserializing the responses and then taking the appropriate actions on a MS SQL server db.
|
|
|
|
|
Hi,
I'm having a problem using reflection in VB.Net (.NET Framework 2.0).
Here's a simple version of the code:
Dim myAssembly As System.Reflection.Assembly = System.Reflection.Assembly.LoadFile("C:\MyApp\Extras\Bob.dll")
For Each typ as System.Type In myAssembly.GetTypes
...
Next
My application is running from C:\MyApp. One of the classes in Bob.dll inherits from a class in Ben.dll. Now, unless Ben.dll is in my application's directory (C:\MyApp) I get a ReflectionTypeLoadError saying it can't find ben.dll.
Does anyone know of anyway I can get this to work by having ben.dll in c:\MyApp\Extras? Can I get it to check the C:\MyApp\Extras folder instead/as well as the app path somehow?
Thanks.
|
|
|
|
|
Hi Friends,
I am trying to do Bulkcopy of xml records to SQL Server 2008.
I am using the below code. But I am getting error
"
ActiveX component can't create object SQLXMLBulkLoad.SQLXMLBulkLoad"
This is my code:
Set objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkLoad")
objBL.ConnectionString = "server=Testdb;Database=CApp;UID=dbo;Password=dbo;LANGUAGE=us_english"
objBL.ErrorLogFile = "c:\error.log"
objBL.Execute "c:\customermapping.xml", "c:\customers.xml"
Set objBL = Nothing
Please help.
Thanks and Regards,
R. Sangeetha Priya.
|
|
|
|
|
From this article : XML Bulk Load Examples (SQLXML 4.0)[^]
It would appear that you need to change
Set objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkLoad")
To
Set objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkLoad.4.0")
Lobster Thermidor aux crevettes with a Mornay sauce, served in a Provençale manner with shallots and aubergines, garnished with truffle pate, brandy and a fried egg on top and Spam - Monty Python Spam Sketch
|
|
|
|
|
Hello !
i'm new in vb.net and sql server.Now i'm starting to create an application using vb.net 2010 and sql server 2008R2 express.
i need a suggestion :
Should i use direct communication with sql server ( sql commands..) or using dataset ?
what is the best way ?
Thank you in advance.
|
|
|
|
|
There's no way to answer that question because you haven't said anything about what you're doing.
There are various methods to access data in a database. What you're doing with the data and your business requirements have a far more direct impact on how you access the data than what you're using.
|
|
|
|
|
the database contains about 25-30 tables .Each table has 5-15 columns.i want to do normal operations with a database : edit data , update , delete , add... etc.And i need to create reports with different data on database.
|
|
|
|
|
Again...that's what you have, not what you're doing.
For example, if you're going to do some kind of processing on, say, 10000 records, you're not going to use a DataTable for this. You'll probably going to use a DataReader.
Now, if you're going to bind a control to a couple of dozen records just to show them, you'd probably use a DataTable or DataSet and not a DataReader.
What method works best for each situation is dictated by precising what you're doing, not what you have.
|
|
|
|
|
Thank you , for your suggestions.
But , i make more simple my question :
i'm a beginner on working with vb.net + sql server. Until today , i have developped several application in MS Access (backend + frontend).
But now i want to make something in vb.net+ sql server. Someone suggest to use typed dataset because
is more easy for begginners and is similar with the way i have worked in ms access.( it's easy to create forms with bounded controls , it's more easy to create reports....)
Is this true ?
thank you.
|
|
|
|
|
It could be. You don't konw until you try.
|
|
|
|
|
The first thing I can suggest to you is to read up on the different Areas of database communication. Personally I prefer the second technology but I have put it here for you to read upon
TableAdapters[^]
ADO.NET[^]
Until you have a understanding of these I wouldn't yet approach LinQ or Entity Frameworks, that just my 2 cents on learning database communication.
Lobster Thermidor aux crevettes with a Mornay sauce, served in a Provençale manner with shallots and aubergines, garnished with truffle pate, brandy and a fried egg on top and Spam - Monty Python Spam Sketch
|
|
|
|
|
Without knowing the details of the project, I can't answer exactly, but...
We actually abstracted the SQL interface for our in-house software, so we don't often need to actually deal directly with the SQL server, we just write the commands and then get a result. I suggest you try something like this if you don't use datasets. It'll make your life alot easier writing and maintaining the code.
If you have any queries you call frequenty, I would also suggest that you sent them up with their own functions to automatically create the SQL command. Again, it'll make maintainance much easier.
|
|
|
|
|
I suggest you to try all types of communication while you are a beginner. When you'll start professional programming then you can decide what is best for your program. I telling you to see another tools (Entity Framework) to manipulate database http://www.microsoft.com/download/en/details.aspx?id=18504[^]
Good luck.
|
|
|
|
|
In my application, I need to address multiple configuration files. This is because different people will supply a configuration file and the application should process the information inside.
The layout of each configuration file looks like this:
<section>
<subsection id="sub1" >
<item id="item 1" value="value 1" />
<item id="item 2" value="value 2" />
</subsection>
<subsection id="sub2" >
<item id="item 1" value="value 1" />
<item id="item 2" value="value 2" />
</subsection>
</section>
Is there an easy way to keep track of several .config files and can I read those using the configuration manager? Or should I write a class to read several .xml files with said format?
|
|
|
|
|
It's probably better to create a class which will isolate you from the storage mechanism in the long run as you might have to switch out the xml to a database if your users grow, or you have to add backup logic etc.
This will all depend on how you see the usage growing.
You can also use a Key/Value store like RaptorDB to store the information which is scalable.
Its the man, not the machine - Chuck Yeager
If at first you don't succeed... get a better publicist
|
|
|
|
|
Hi all...
I wrote an application in VB.NET (VS 2008) to start a process and read its output error.
The code is given below :
Private Function getProcessOutput(ByVal processName As String, ByVal args As String, ByVal processPath As String)
Dim output As String = ""
Try
Dim prc As Process = New Process 'Create object of Process.
Dim prcInfo As New ProcessStartInfo 'Create object of ProcessStartInfo
With prcInfo 'Set attributes to ProcessStartInfo object.
.FileName = processName 'processname to start
.Arguments = args 'filename is passed as argument
.CreateNoWindow = True 'Make background process
.UseShellExecute = False 'Set to false to redirect output/error.
.RedirectStandardOutput = True 'Enable output redirection
.RedirectStandardError = True 'Enable error redirection
.WorkingDirectory = processPath 'working directory where process file is stored.
End With
prc.StartInfo = prcInfo
prc.Start()
prc.BeginOutputReadLine() 'Start reading output in asynchronous way.
output = prc.StandardError.ReadToEnd() 'Read whole error.
prc.WaitForExit() 'wait for process to exit.
Catch ex as Exception
Msgbox(ex.message)
End Try
Return output 'Return output whether it is error or program output.
End Function
This function is working pretty well in Windows XP but when I am trying to run this code in Win 7, it throws an exception that file not found.
I checked process name and working directory for the file which I want to run but still it is generating same error message.
Suggest me what should I do.
Thanks.
Gagan
|
|
|
|
|
Gagan.20 wrote: it throws an exception that file not found.
rather than showing some code (which looks OK), you should have shown the value of processName (is it a full path, a relative path? anything special, maybe one of the special folders?), and the entire exception (the ToString result, not just the Message).
Anyway, if the system says "File Not Found" it means it can't find a file it needs. It could be the exe file you want to run, or one of its dependents. Look more closely.
|
|
|
|
|
I am passing cmd.exe as process name and working directory as c:\Windows\System32\
The error message is :
System.ComponentModel.Win32Exception: The system cannot find the file specified
at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
All the necessary files are present and same code is working in Win XP but not in Win 7.
What to do to make this code running on Win 7?
Thanks.
Gagan
|
|
|
|
|
My best guess is you are having 32-bit/64-bit trouble. Here are some facts:
- a process can't mix 32-bit and 64-bit code, it has to be homogeneous.
- on 64-bit systems Task Manager appends a "*" on process names for processes running in 32-bit mode.
- managed code exe's built for "64bit" or "AnyCPU" will run in 64-bit mode on a 64-bit system; managed code DLL files should be built in "AnyCPU" (the default), making them work everywhere.
- Files get organized differently on 64-bit systems, 64-bit system code is stored in system32 (!!) and 32-bit code in the new sysWOW64 folder.
The easiest approach often is:
- build managed stuff for "x86" (i.e. make it execute in a 32-bit process);
- store required DLLs in WOW64 when you put them in system32 on 32-bit systems.
|
|
|
|
|
Thanks Luc for your help.
I compiled and run my code on 32-bit successfully.
But if I want to run this code on 64-bit then what should I do?
Thanks.
Gagan
|
|
|
|
|
Luc Pattyn wrote: 640bit systems
640 wow, where can i get one of those? what would the maximum addressable memory be??
|
|
|
|
|
DaveAuld wrote: 640 wow, where can i get one of those?
many places, wide stuff[^] has been researched and experimented with for decades.
DaveAuld wrote: what would the maximum addressable memory be??
gigantic wouldn't start to describe it.
|
|
|
|
|
Hey everyone,
I'm working on a project that includes product activation. We are using a TCPclient on the client application to connect to a TCPlistener on the server. 99% of the time, everything goes fine. But we have had a few clients complain that they are unable to activate. I was able to set up a debug server and have the client try activating against that. I watched the incoming connection and the issue seems to be that the client is able to connect and send data (verified by the clients log file), but the server never receives it. The stream.readbyte() function hangs until it times out.
Here's some info on the configuration:
There are two servers, a main and a backup. Both are up and communicating with most users. They listen on ports 80 and 63016. If the connection fails on port 80, it tries 63016. If the main server cannot be connected to, it tries the backup server with the same ports.
My best guess is because it's communicating on port 80 (the http protocol's port), some firewall or security program is blocking the packets because they aren't standard http traffic. It may look like malware trying to "phone home". Which would explain why the connection goes through but the data does not. The client never tries the other port because it successfully connected (I'm in the process of changing this behavior now.)
Please, if you have any ideas or things I can try, I'd be greatly appreciative. I'm at the end of my rope here.
|
|
|
|