|
|
Here is what I did:
object []a = new object[1];
object []b;
Array tmp = (Array)a;
b = (object [])func(ref tmp);
Then it compiled ok. But when I run it, I got this exception:
An unhandled exception of type 'System.Runtime.InteropServices.SafeArrayTypeMismatchException' occurred in GeoCoding.exe
Additional information: Specified array was not of the expected type.
Thanks.
|
|
|
|
|
What's the IDL declaration of func?
Right now you're stuffing an array of generic objects into the function. I guess func doesn't expect an array of objects, but of other, more meaningful types.
mav
|
|
|
|
|
I am writing an application using Microsoft Visual Editor in C# ofcourse. My programs create log files whenever excecuted. The problem I am facing is the values are not getting logged if I am running the program from the comandline, the VisualEditor Command Line. They are getting logged when I am running them from the Visual Editor.
Kindly help,
Sowmya Mulukutla,
UAB
|
|
|
|
|
|
For Eg:My code has a text writer which at present timestamps, and logs some other details from the code on to a text file, whenever I run the program.
But this happens only when I run it from the Visual Editor, and nothing gets logged when I run it from the command line. I dunno if I have to set anything to allow logging when I run my programa from the command line.
This should help, hopefully.
Thanks.
Sowmya Mulukutla,
UAB
|
|
|
|
|
No you don't. There's no difference between running it from the editor and running it from a command line. It would appear that your logging code is assuming something it shouldn't be. Possibly a filename for the log file that you're not supplying a complete path to? Instrumenting your code to log errors to the EventLog would also help.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
you are probably running the app from a different working folder, so your log file is created somewhere else.
try to search for it in some obvious places
OGR
|
|
|
|
|
Hi!
I am currently working with a Rich Client application which presents a simple windows control on the web page
<object classid="http://localhost/RichClientDll.dll#RichClientDll.UserControl1">
Now i have the need to load information from a database which is located on the server, while the object it located on the client.
Can anyone tell me how to copy the database from the server to the client (object)?
I tryed to do it with WebService but it gives me an error "The Request Failed with http status 401: Access Denied"
Can Anyone help me please
|
|
|
|
|
alex_kl wrote:
Can anyone tell me how to copy the database from the server to the client (object)?
If this is a multiuser application (many people using the database) then you'll end up with multiple copies of the database with different data and none with complete data.
Also, you don't say what the database is, so if it is something like SQL Server then it is a bit difficult to just copy it.
If this is on an internal network then can you not access the database remotely from the client? Again - knowing what the database product is helps.
Since you are using web services to communicate with the server then why not put some better service logic on the server to retrieve and update the database via the web service rather than copy the entire database?
Cada uno es artifice de su ventura
WDevs.com - Open Source Code Hosting, Blogs, FTP, Mail and Forums
|
|
|
|
|
I m using sql server
and i am not copying the database but i am trying to access it,unfortunatally with no luck
and by "copy" i meen to retrive information from it and move it (the inforamtion) to the client
|
|
|
|
|
Use ADO.NET?
create a connection, select the needed data through an adapter and fill a dataset or a datareader?
Or did I understand the question wrong?
good luck.
No hurries, no worries.
|
|
|
|
|
I know how to use ADO in WebApp and WinApp
however it is inposible to use in this case
the connection would be made on the client instide of the server
|
|
|
|
|
Can you elaborate what your problem is then, because I don't understand really.
No hurries, no worries.
|
|
|
|
|
I'm developing a .NET application that runs on IIS 6.0. I have placed the .DLL that contains the modules that I need to call written in C in the application bin directory. IE: D:\mcp\bin. Yet, when I go to run the application it throws a [DllNotFoundException: Unable to load DLL (mcpc.dll).] exception.
I tried changing the permissions on IIS to say that it's allowed to run executables in the bin directory. I've even tried placing the .DLL library in the application root directory but it still throws the same exception.
My question is where do you put the .DLL libraries so that the WebServer can execute the modules?
Thank you,
Glenn
|
|
|
|
|
|
If I have a thread and I put a try block with a finally clause in it, will that finally get called if the thread is aborted and how is this done (on a low level).
Just curiosity!
Thanks,
Jim
|
|
|
|
|
If your thread has had a chance to spin up before you call the Abort method it will process the finally clause. Calling Abort only begins the processing of terminating the thread. It raises a ThreadAbortException, which typically ends the thread, but your finally clause will generally execute.
|
|
|
|
|
Calling Abort() only causes a ThreadAbortException on the thread. Because the finally clause executes regardless of whether the exception occurs or not, it should work okay
Regards
Senthil
_____________________________
My Blog | My Articles | WinMacro
|
|
|
|
|
sigh:My dataset has a column of filenames
I want to do a foreach on the filenames and see if they exist in a directory
if so I want to print the dataset row....HELP!!!
|
|
|
|
|
|
No matter how many times and ways you post the same question, you're not going to get the full answer until you at least attempt it yourself.
FWIW, look up the File class in the System.IO namespace and it has a static Exists method.
|
|
|
|
|
I've been dabbling with .NET remoting in the past few days and I'm completely new to it. I've successfully created a client application that accesses a marshaled object by a server application and updates it, therefore reflecting the change on the server side. So, I've been thinking about going bigger with my dabblings..
I'd like to create a simple application where a user can create an order of something, say hamburgers. When the user selects the # of hamburgers and enters their name, they can press a button to send the order. I want the server side to receive the order and store it in xml. So, I've been thinking about this and applying what I know of C# and .NET remoting.
What's the best way to get an order to the server without using large objects? Should I create a simple remotable object with an Add and Delete method that accepts an order? Then, should I create delegates in that class for Add and Delete so that my server application can listen for the Add and Delete delgates? Should I have a constructor for my remotable object that accepts a reference to my server's forms, methods, etc and forget about delegates?
Please remember that I'm fairly new to this... help is appreciated..
|
|
|
|
|
This morning I created a simple remotable object with a delegate and event using that delgate. On the server side where I created the object, I setup an eventhandler for the event I created and marshaled the object.
On the client side when I get a reference to the object using Activator.GetObject and I try creating an eventHandler for the same event, I get a security policy error. I was hoping that setting up an eventhandler on the object on both server and client sides that it would be a way that I could communicate back and forth between the server and client.
I know that this is probably a misguided attempt at client/server and server/client communication, but I'm new to this. Can anyone point me in the right direction?
|
|
|
|
|
I am working on a socket-based client application, and I need a facility to ensure that a given delegate will execute only on the main GUI thread.
I understand that derivatives of System.Windows.Forms.Control achieve this by implementing ISynchronizeInvoke, and outside threads can call Invoke or BeginInvoke/EndInvoke to run code on the thread which "owns" the control. I need similar functionality, but in a class that is clearly not a Control derivative.
In the code below, I would like to attach a notification to the end of the ReceiveCallback() method to inform the main thread that data is ready in the receive queue.
I see 3 ways in which this can be accomplished:
1) Override the main WndProc routine, and check MessagesPending() on each iteration through the message loop. I'm not extremely familiar with multithreading issues, but it seems that this would cause the queue to be locked most of the time, not to mention burning unneccesary cycles in the core program loop.
2) Post a system message and respond to it in the main WndProc loop. I've seen ways to respond to the message via an IMessageFilter object, but I have not been able to find a means of posting a custom message to the main window.
3) Implement a system like the controls use, involving the ISyncronizeInvoke interface. However, I am completely at a loss as to how one could achieve this functionality.
Any help is greatly appreciated. If I can work this out, I will most likely put together an article covering the topic and submit it to the code project.
Here's a sample of the class code:
<code>
public class CommunicationManager
{
public delegate void CMEventHandler();
public event CMEventHandler DataReceived;
private ManualResetEvent ReadyToStop = new ManualResetEvent(false);
private AutoResetEvent ReadyToSend = new AutoResetEvent(false);
private AutoResetEvent ReadyToRecv = new AutoResetEvent(false);
private Socket sock;
private Queue inQ, outQ;
public CommunicationManager() {}
public bool MessagesPending() {}
public string GetMessage() {}
public void SendMessage(string msg) {}
public void Connect(string IP, int Port) {}
public void Disconnect() {}
private void ReceiveThreadEntryPoint(object state)
{
WaitHandle[] handles = new WaitHandle[2];
handles[0] = ReadyToStop;
handles[1] = ReadyToRecv;
StateObject so = new StateObject();
while(true)
{
if (sock != null && sock.Connected)
{
so.Clear();
so.sock = sock;
sock.BeginReceive(so.buff, 0, StateObject.BUFFER_SIZE, 0, new AsyncCallback(ReceiveCallback), so);
}
if (WaitHandle.WaitAny(handles) == 0)
break;
}
}
private void SendThreadEntryPoint(object state)
{
while(true)
{
WaitHandle[] handles = new WaitHandle[2];
handles[0] = ReadyToStop;
handles[1] = ReadyToSend;
if( WaitHandle.WaitAny(handles) == 0 )
{
break;
}
if (sock != null && sock.Connected)
{
while(outQ.Count > 0)
{
StateObject so = new StateObject();
so.sock = sock;
byte[] buff = Encoding.ASCII.GetBytes((string)outQ.Dequeue());
sock.BeginSend(buff, 0, buff.Length, 0, new AsyncCallback(SendCallback), so);
}
}
}
}
private void ReceiveCallback(IAsyncResult ar)
{
StateObject so = (StateObject)ar.AsyncState;
Socket s = so.sock;
try
{
if (s == null || !s.Connected) return;
int read = s.EndReceive(ar);
if (read > 0)
{
string msg = Encoding.ASCII.GetString(so.buff, 0, read);
inQ.Enqueue(msg);
ReadyToRecv.Set();
}
}
catch {}
}
private void SendCallback(IAsyncResult ar)
{
StateObject so = (StateObject)ar.AsyncState;
Socket s = so.sock;
try
{
if (s == null || !s.Connected) return;
int sent = s.EndSend(ar);
}
catch {}
}
private class StateObject {}
}
</code>
-Bn. Wasteland
|
|
|
|