|
Hi all,
I want to handle a unhandled exception thrown by a plugin running in its own appDomain (ie not Defualt appDomain) in defualt appDomain (host appliation), and then unload the culprit appDomain..
Is it really possible to handle this kind of cross appDomain exception. the exception may occur any time during the life time of plugin appdomain ( say some buttton in the plugin throws some unhandled exception..)
please have a look on the sample code given below.. What should i do handle the exception thrown by button1.. I never want to close my host application at any cost. it should continue its execution whatever happens in plugins..
please give me guide lines.
//********************* Plug in *******************************
public class BadPlugin: Form,IPlugin
{
private System.Windows.Forms.Button button1;
public StaffList()
{
InitializeComponent();
}
private void InitializeComponent()
{
this.textBox1 = new System.Windows.Forms.TextBox();
this.button1 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(232, 96);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(176, 48);
this.button1.TabIndex = 1;
this.button1.Text = "button1";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// StaffList
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(488, 302);
this.Controls.Add(this.button1);
this.Controls.Add(this.textBox1);
this.Name = "StaffList";
this.ResumeLayout(false);
}
private void button1_Click(object sender, System.EventArgs e)
{
throw new Exception("Bad plgin exploded exception");
}
}
//********************* Plug in Interface *******************************
public interface IPlugin
{
void Show();
}
//******************** Plug in Host Application***************************
try
{
AppDomain app = AppDomain.CreateDomain("PluginDomain");
IPlugin plugin = (IPlugin)app.CreateInstanceAndUnwrap("SamplePlugins","SamplePlugins.BadPlugin");
plugin.Show();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
Thanks and regards
123developer
-- modified at 1:06 Tuesday 10th July, 2007
|
|
|
|
|
|
Dude,
I already had a look on AppDomain members.. if u r pointing to AppDomain.UnhandledException event.. , it is not firing in my case. I have registered this event bfore Application.Run().. in defualt appDomain..
According to MSDN documents, it sholud be fired before the application going to unstable state.. But in my case i am getting the unhanled exception message runtime messagebox..
What i am really missing my code.
can you point the specific member you are suggesting.
Thanks and regards
123developer
|
|
|
|
|
i didn't get it.. could u please explain that which appDomain member should i concentrate on?
|
|
|
|
|
I write a web service in C# and I want to debug some error but when I click Run button then Visual Studio 2005 show error message box as below.
"Unable to start debugging on the web server. The underlying connection was closed: An unexpected error occurred on a send"
Please help me to deal with this problem.
Thanks so much.
A student in Viet Nam.
|
|
|
|
|
Google[^] has several suggestions for this. It could be something to do with the way your network is configured, or with the version of OS that you are using. Please have a read through some of the threads in Google and see what they come up with.
|
|
|
|
|
hi
how can i get the system processor number using C# for .net compact framework 1.0?
thanks
|
|
|
|
|
I'm not sure, but the only way I've found to get similar information ( HDD number ) is to use WMI. If that doesn't work, I know there are C++ api's you can p/invoke. Google for how to do it in C++ then go to www.pinvoke.net[^] to find out the p/invoke signatures
Christian Graus - Microsoft MVP - C++
"I am working on a project that will convert a FORTRAN code to corresponding C++ code.I am not aware of FORTRAN syntax" ( spotted in the C++/CLI forum )
|
|
|
|
|
thank you. i'll try out that way. and is there any way i can get access to the registry of the remote device that is in sync with my PC over ethernet using active sync.
|
|
|
|
|
i have to determine who is logged in, then find out if they have taken the exam before. If they have you deny them access, otherwise you permit them to sit the exam.
<pre>
SqlCommand cmd=new SqlCommand ("select EmpId from DBAnswer where Testtaken=1");
if ( Testtaken==Convert.ToString(1))
{
Response.Redirect ("alertmessage.aspx");
}
else if(Testtaken==Convert.ToString(0))
{
Response.Redirect ("Survey.aspx");
}
</pre>
srinivas
|
|
|
|
|
I would just do a login timestamp on the database side.
"Any sort of work in VB6 is bound to provide several WTF moments." - Christian Graus
|
|
|
|
|
what is Generic in ASP.NET 2.0 and what are it's advantages.
Can anybody provide me a good article on this topic or make me understand??
adil kazmi
|
|
|
|
|
You can read here.
The way I understand is that Generics save the cost of boxing and unboxing expenses. Generics can set the constrains to a particular things.
Please let me know if i'm in wrong way. Thanks.
|
|
|
|
|
Thanks a lot Michael for your help.
I'll check it out and let you know the feedback.
Thanks again.
adil kazmi
|
|
|
|
|
Michael Sync wrote:
Please let me know if i'm in wrong way.
No, you are right.
Btw, generics can be used for more things, see http://blogs.msdn.com/kcwalina/archive/2007/06/07/GenericMethodsAsCasts.aspx[^] for some (there is interesting comment as well).
"Throughout human history, we have been dependent on machines to survive. Fate, it seems, is not without a sense of irony. " - Morpheus
"Real men use mspaint for writing code and notepad for designing graphics." - Anna-Jayne Metcalfe
|
|
|
|
|
Hi All,
I am fetching a dataset from the database under some condition. After this I create a data table. Traverse in the original dataset & add each row to created data table as it is through LoadDataRow method. After adding the row I just update 4-5 columns out of 20 columns in the row. After entire looping I fire the AcceptChanges method on data table. After this I am trying to update this data back to database in two ways -
1) Merge the above datatable to the original dataset & update it back to database through the data adapter. The data adapter I used in one case was the same with which I filled the original dataset. And in second case I created a fresh data adapter & tried to update.
2) In another method I just tried to update the created data table as it is to the database.
I have also created the appropriate commands for the data adapter through command builder. But unfortunately even after getting no errors on the Update call of the data adapter there are no records getting added to the database. Besides the fact that the merged dataset reflects the added rows in the count as well in the dataset items.
Any kind of pointers are dearly welcome.
Suresh
|
|
|
|
|
Hi all,
i made an installer package (.msi file) for my C# windows application. But, whenever i try to install it on the other systems, it is saying "application failed to initialize properly"...
After searching, i found that it works only on the machines where .net framework was installed..
Is it possible to include .net framework in my package & give it that to my client??
Any solutions plz.............
Thanks in Advance.
|
|
|
|
|
How did you make the installer package?
If it's via visual studio then right click the stup project and select 'properties'. Form there you have 'prerequisites' in there you can select what your setup depends on.
|
|
|
|
|
Hi, thanks for the reply. yup, problem solved..
and, how can i create desktop shortcut?? coz i didn't find any "create shortcut" option .....
|
|
|
|
|
just create a .lnk of the file you want to make the shortcut for and while installing, copy it to either the current user's desktop folder/start menu or to All users' desktop folder/start menu folder.
Smile: A curve that can set a lot of things straight!
(\ /)
(O.o)
(><)
|
|
|
|
|
.lnk file ?? how to create that ?
|
|
|
|
|
Shortcut file
and store it as a file in the installation package, "That's what i usually do for installation"
Smile: A curve that can set a lot of things straight!
(\ /)
(O.o)
(><)
|
|
|
|
|
OMG! but how???
|
|
|
|
|
I'm not sure how your application looks like but if you are intending to copy the shortcut file from the solution "not using an external DOS batch file" then add a reference of visual basic library to your code and use something like this code:
Microsoft.VisualBasic.FileSystem.FileCopy("YourShortcut.lnk",System.Environment.SpecialFolder.DesktopDirectory+"\\YourShortcut.lnk");
also take a look at your C:\Documents and Settings\All Users\Desktop folder and if you want to use this one, try something tricky like getting the drive letter on which windows is installed and concatenating it with the destination path
string strWindowsRoot = System.Environment.GetFolderPath(System.Environment.SpecialFolder.System).ToString().Substring(0, 3);
I hope you get over it ..
Smile: A curve that can set a lot of things straight!
(\ /)
(O.o)
(><)
|
|
|
|
|
do u mean to say " using IWshRuntimeLibrary" ??
|
|
|
|