|
I have a simple C# Windows Service which exposes some objects via remoting.
These objects are also registered for COM Interop. I have a test web ASP
page which creates the COM objects (which run remotely inside my service).
Every thing has been running fine until we started stress testing. The
service's memory increases until the box is on its knees whilst we run even
a light test. However, here the strange bit, if I change the service
process's start Main function to just sit and wait on a MessageBox.Show call
instead of running as a service the test still runs perfectly well but the
memory usage does not climb, it remains stable. Using perfmon viewing the
CLR Memory/#bytes in all heaps we see a nice zig-zag pattern of allocs
followed by garbage collection. When running as a service the perfmon graph
just increases ever upwards. It seems as though garbage collection doesnt
happen when remoting objects from a service? Any thoughts or similar
experience?
|
|
|
|
|
I had a similar problem. It turned out to be the Com object.
The GC tidies up whenever it likes unless you force it. I tried everything getting the handle of the com destroying implicitly, forcing GC nohing worked.
Once the com instance was created there was no way in hell to destroy it.
Funnily enough it wasn't even a custom com it was Microsoft's own!.
It looks exactly the same problem as you are having. Never did cure it.
Sorry could not help
He who laughs last thinks slowest.
|
|
|
|
|
We use System.Runtime.Marshal.Cantremembetthisbit.ReleaseComObject() which seems to clean up on the spot.
|
|
|
|
|
Hey guys sorry if this is a mind numbing question, but i am new to .net programming . I have begun to write a small little chat program that will 2 users to connect to each other and send text messages and files. I would like to display the ip address of the user in the window and i found this great article...
http://www.codeproject.com/csharp/network.asp
Unfortunatly I cant seem to access the DNS class. At the end of the article the author says to make sure you have the System.Net.dll file in your reference list, however after doing a search of my hard drive the file cannot be found (yes I have the framework installed).
Also could someone tell me the difference between "using namespace Whatever" and "using Whatever", Im familiar with namespaces, but not with just the plain ol using directive...
Thank you!
|
|
|
|
|
Ok, After searching around I found out that there is no System.Net.dll file as it is included in the System.dll file. However i still can not access the DNS class (in my projects dll). In my project I am using VB.net for creating the windows form and I am also using a dll written in managed c++. I am able to use the statement "Imports System.Net" in my VB code fine and i have access to the DNS class within ok, however i want access to it in my c++ dll and i am going crazy trying to figure it out.... here is a little sample of what i am trying...
<code>
#pragma once
#using <System.DLL> // This statment allows me to use...
// |
using namespace System; // \|/
using namespace System::Net; // this without getting compile errors however
// I still cant use the DNS class! help
// I need the C++ equivilent of VB's
// Imports System.Net
namespace SkillzLib
{
public __gc class NetConnect
{
private:
int portListen;
int portSend;
String* IPMe;
String* IPYou;
String* HostName;
public:
NetConnect();
void Connect();
void Disconnect();
void SetListen(int port) {portListen = port;}
void SetSend(int port) {portSend = port;}
void SetIPMe(String* address) {IPMe = address;}
void SetIPYou(String* address) {IPYou = address;}
int GetListen() {return portListen;}
int GetSend() {return portSend;}
String* GetIPMe() {return IPMe;}
String* GetIPYou() {return IPYou;}
};
}
</code>
|
|
|
|
|
Ok after some hair pulling and entering random code i did it! Why what i did works...I have no idea. I would REALLY appreciate it if someone could explain it to me. The article i referenced in the first post used c# (i think because it sure as hell wouldnt work in my c++ code). Here is what i got...
The article used...
using System;
using System.Net;
Then later had...
String strHostName = new String ("");
strHostName = DNS.GetHostName ();
I finally got it working in my c++ dll by using...
#using <System.DLL> //If i dont use it i get...
using namespace System;
using namespace System::Net; // error C2039: 'Net' : is not a member of 'System'
And later i used...
HostName = new String("");
HostName = Dns::GetHostName();
Now could someone please try and explain this. I though there was a class called DNS (all caps), but i had to resort to some Dns 'thing' (NOT all caps) with the :: notation to get at the GetHostName() function. This doesnt make sence to me since i though the .net framework was supposed to be language independent, yet it seems as if DNS and Dns are 2 different things.
Thanks in advance!
|
|
|
|
|
Hi,
you are using a case sensitive language, DNS and Dns are not the same thing.
System.Net.Dns is the correct name, not System.Net.DNS
GetHostName is a static method, that's why Dns::GetHostName(); is the proper syntax.
Hope this helps.
|
|
|
|
|
I have this problem:
I'm adding programatically user control to another user control (kind of container). After this added control is removed with
ctrl.Parent = null;
from its container, application won't close with standart close window (placed in upper right corner button) nor with ALT-F4 combination. I still can
close it with Application.Exit() and closing main window prior to it.
Any suggestions what is happening? I'm stuck...
Thnx for help in advance
Regards
|
|
|
|
|
Sounds like an infinite loop to me!
|
|
|
|
|
I don't think so. If there was infinite loop I would't be able to raise any events from menu items, I guess. Problem apears only when using standard window close methods (ALT-F4, or [x] button) and only after UserControl descendant remove.
Here's what i've found till now.
I've created new, very simple (empty) UserControl descendant. Added and removed programmaticaly from parent, and everything worked fine.
After that I've added new TextBox control to this new control, and...
problem returned.
I guess there's something with resources remove (maybe control disposing) but what? and how to manage with this? This is enigma to me
Regards
|
|
|
|
|
I get what you mean now, and it does not make sense why it should do this.
I have used user controls with code-behind adding user-controls dynamic removal just about any way you could think of. and have not seen this problem.
I am intrigued.
Do you have a code snippet to look at.
Steve
He who laughs last thinks slowest.
|
|
|
|
|
I'm not sure if this helps, but i had similar problem.
Try to remove focus from control before removing it..
When you remove control with focus application will not close correctly..
(It's bug in .Net)
i'm only pointer to myself
|
|
|
|
|
Thanks.
I've managed it couple hours ago, but my method is quite unspleasant IMHO.
I'm removing all child controls in this UserControl before removing it. It seems to be working since then.
Regards.
|
|
|
|
|
Does anyone know why all my event log entries include this statement?
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
Better yet, does anyone know how to stop it?
Paul Watson wrote:
"At the end of the day it is what you produce that counts, not how many doctorates you have on the wall."
George Carlin wrote:
"Don't sweat the petty things, and don't pet the sweaty things."
Jörgen Sigvardsson wrote:
If the physicists find a universal theory describing the laws of universe, I'm sure the a**hole constant will be an integral part of that theory.
|
|
|
|
|
It seems to be a standard insert from the .NET message file. It's a real pain, because it stops you from putting your own support link in the message.
If you want to get rid of it, you will need to write your own message file, and register the source the hard way. Have a look at http://www.codeproject.com/useritems/EvtVwr.asp[^] for more info.
"These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer
|
|
|
|
|
Hello all,
I use .NET deployment wizard to make an installer for my application. But during uninstall, the files which are created in the application folder, after installtion, are not removed. How can I make the uninstall remove the entire application directory?
BTW, can I set "Launch application" at the end of the installation process?
Thanks
Smitha
You are never given a wish without also being given the power to make it true. You may have to work for it, however.
-- Richard Bach
|
|
|
|
|
Does anyone know of a way to add a .NET control to an Access or VB6 form? I need to do this without editing the source code of the .NET control.
Any help would be greatly appreciated.
Thanks,
Steve
|
|
|
|
|
Okay. So maybe it is not so serious, but it appears to be a glaring mistake. This explains why group boxes, tab pages, check boxes, or any control cannot be made transparent by setting BackColor to Color.Transparent.
Get Anakrino[^] and take a look inside System.Windows.Forms.dll.
Navigate to System.Windows.Forms.Control::OnPaintBackground and see that it will call PaintBackground . Go to that method (still in Control class) and look at its code. Its code should start off with:
if (this.RenderTransparent)
this.PaintTransparentBackground(e, rectangle);
All the private property RenderTransparent does is check if the backcolor is Color.Transparent. Anyway, now we get to the core of the problem: PaintTransparentBackground . Here is its code:
internal void PaintTransparentBackground(PaintEventArgs e, Rectangle rectangle)
{
Graphics local0;
Control local1;
POINT local2;
PaintEventArgs local3;
GraphicsState local4;
int local5;
local0 = e.Graphics;
local1 = this.ParentInternal;
if (local1 != null)
{
local2 = new POINT();
local2.y = (local5 = 0);
local2.x = local5;
UnsafeNativeMethods.MapWindowPoints(new HandleRef(this, this.Handle), new HandleRef(local1, local1.Handle), local2, 1);
rectangle.Offset(local2.x, local2.y);
local3 = new PaintEventArgs(local0, rectangle);
local4 = local0.Save();
try
{
local0.TranslateTransform((float) -local2.x, (float) -local2.y);
this.InvokePaintBackground(local1, local3);
local0.Restore(local4);
local4 = local0.Save();
local0.TranslateTransform((float) -local2.x, (float) -local2.y);
this.InvokePaint(local1, local3);
}
finally
{
local0.Restore(local4);
}
}
local0.FillRectangle(SystemBrushes.Control, rectangle);
}
Is this a true bug, or am I missing something?
Mike_V
Tech Support: "Do you have any windows open?"
Customer: "Are you crazy woman, it's twenty below outside..."
|
|
|
|
|
Thanks for pointing this out. It actually gives me another idea though. I wonder if this code for Transparency could be used to create a "Child" Form in an MDI App that would support a Transparency Level? To see what I am talking about, create a Form and set it's transparency to be 75% or so. Then watch your App run...looks nice don't it? Now, make that Form a child form and Blam! No more transparency.
Also, I have done some custom controls. In doing that you can set the Styles of the Control (i.e. Me.SetStyle(ControlStyles.SupportsTransparentBackColor, True)). I believe for the most part this usually works. I wonder if MS is checking for this flag and running the code differently depending on that?
|
|
|
|
|
I have created a .NET Windows Form control. This control is licensed, using the standard licenseing classes of .NET (License class, LicenseProvider class, etc).
This is working when the control is used in an application. However, it seems this does not work when the control is used in a wrapping control or a class library. Is this a known problem? Is there anything special to do?
|
|
|
|
|
i think the license info needs to be compiled into the execution app.
so if you include your control in another control , you will still need the license info in the host app...
//Roger
|
|
|
|
|
Unfortunately, this is not allways possible. Sometimes, you cannot change the the host app because you have not its source code. It is the case if you use the control under ASP.NET (aspnet_wp.exe). In such a case, it seems that the licensing provided by .NET is not working.
|
|
|
|
|
i actually think i read taht on gotdotnet , that control licensing doesnt work under asp.net .. but i could be way off here... but i think that was stated on some license page..
|
|
|
|
|
Does anyone know of a website or anything that could show me how to use/create windows metafiles? It would be great if there was a tutorial for VB.NET but if not VB 6 would suffice. Specfically, I'd like to create barcodes so any websites that could point me to a barcode format website would also be helpful. Thanks for any help in advance
|
|
|
|
|
I'm having a problem with the .NET installer. My program uses the MyODBC drivers for MySQL and I wish to install it when I install my program. I can create the screen that provides the check box "Install MySQL support" no problem. however when I got to the custom action property of the MyODBC driver, I can't seem to create the right expression that will evaluate to true or false. It's either always true, or always false. Any help will be gladly accepted.
|
|
|
|