|
vanikanc wrote: using the greater than sign
vanikanc wrote: <
Try > instead.
|
|
|
|
|
'nuff said...
Will Rogers never met me.
|
|
|
|
|
I have an application that uses a net remoting server that that is on a public network that as no fixed ip address.
When the server changes the ip all the clientes steel connect to the old ip Address even if a call activator.GetObject
width the name of the server.
The service is running in siglecall Mode
and props["useIpAddress"] = false;.
TcpChannel
Can some one help me to solve this problem?
|
|
|
|
|
If your clients don't try an resolve the name with the DNS server that is maintaining your remote servers name/IP address, there's no way they are going to be able to connect.
You have two choices. Either move your server to a more "stable" static IP address or the clients will have to specifically be coded to resolve the IP of your server name with the DynmiacDNS of your servers hosting company.
|
|
|
|
|
Presumably you have already verified that the DHCP record is getting pushed as soon as the IP changes.
AND you have verified that a NEW client picks up the new IP address.
If either of the above is not true then the question has nothing to do with C#.
If both of the above is true then it might help to create a small bit of code that demonstrates exactly what you are doing. It might be your code or that a .Net API is 'helpfully' caching something it shouldn't.
|
|
|
|
|
Yes the ip of the server changes and i can ping the server using the new ip address.
the code i use is this:
string serverAddress = ServerAddress;
int LocalPort = localport;
IDictionary props = new Hashtable();
props["name"] = "DbSync";
props["timeout"] = 60000*60;
props["useIpAddress"] = true;
props["socketCacheTimeout"] = 1;
BinaryClientFormatterSinkProvider clientProv = new BinaryClientFormatterSinkProvider();
TcpClientChannel channel = new TcpClientChannel(props, clientProv);
ChannelServices.RegisterChannel(channel,false);
_ServerURL = string.Format("tcp://{0}:{1}/RDbSyncronizer.soap", adresses[0], LocalPort.ToString());
RemoteSyncronizer =Activator.GetObject(typeof(ServerSyncronizer), _ServerURL) as ServerSyncronizer;
and when a connection fail i call to
RemoteSyncronizer =Activator.GetObject(typeof(ServerSyncronizer), _ServerURL) as ServerSyncronizer;
again.
if i restart the service in the client he connects to the new IP and work until the ip of the server changes again.
|
|
|
|
|
My guess is that some part of the remoting infrastructure is caching server/service combinations, so it doesn't have to go and shake hands with a new server each time you create an instance of a remote object. You will need to call some method to clear that cache or force a reconnection. But I have not worked with remoting so I can't provide any detailed help.
|
|
|
|
|
Member 2416021 wrote: Yes the ip of the server changes and i can ping the server using the new ip
address.
Either that is stated incorrectly or it has nothing to do with what I said.
I have no doubt that the IP changes. And once it changed pinging it would be expected.
That however has nothing to do with DHCP resolution.
|
|
|
|
|
Hello all, I am now learning to program in C#. I initialised an object of OpenFileDialog and set the filter. When the dialog box opens for the first time, everything seems to be OK. Files of the type specified in the filter a shown. But when I change Files of Type to All files which I have set with *.*, the list of files shown is not automatically updated as is expected. I don't know what is wrong. The following is the code I have.
using System;
using System.Drawing;
using System.Windows.Forms;
class MyForm : Form
{
public static void Main()
{
Application.Run(new MyForm());
}
public MyForm()
{
Text = "My Form";
Menu = new MainMenu();
Menu.MenuItems.Add("&File");
Menu.MenuItems[0].MenuItems.Add("&Open...", new EventHandler(FileOpenOnClick);
}
void FileOpenOnClick(object obj, EventArgs ea)
{
OpenFileDialog fodlg = new OpenFileDialog();
fodlg.Filter = "Text Documents (*.txt)|*.txt|All Files (*.*)|*.*";
if (fodlg.ShowDialog() == DialogResult.OK)
{
}
}
}
I am using Visual Studio 2005 with .Net Framework 2.0. From the code above, I have only set the Filter property. When the file open dialog box opens first with Text documents, it works fine but when I change the Files of Type from the combobox to All Files, the dialog box is not updated to show all files. What could be wrong? What am I missing? Please help.
modified on Monday, June 6, 2011 10:01 AM
|
|
|
|
|
There's nothing wrong with the code. Your code has no control over the refresh in the dialog.
The problem has to be something else in your system, though I have no idea what.
|
|
|
|
|
I changed two things to get your code working; added the STAThread attribute and changed the class to OpenFileDialog , as shown below;
[STAThread()]
public static void Main()
{
Application.Run(new MyForm());
}
void FileOpenOnClick(object obj, EventArgs ea)
{
System.Windows.Forms.OpenFileDialog fodlg = new System.Windows.Forms.OpenFileDialog();
fodlg.Filter = "Text Documents (*.txt)|*.txt|All Files (*.*)|*.*";
Bastard Programmer from Hell
|
|
|
|
|
The problem is not in your code. I just checked
with following:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog fodlg = new OpenFileDialog();
fodlg.Filter = "Text Documents (*.txt)|*.txt|All Files (*.*)|*.*";
if (fodlg.ShowDialog() == DialogResult.OK)
{
}
}
}
and it works like charm! Be aware that the dialog class is called OpenFileDialog and not FileOpenDialog.
You should search elsewhere, code is all right!
|
|
|
|
|
hello guys... I wanted to learn the debugging techniques used in professional projects. I am little poor in debugging of projects. Also, it would be nice if I learn how to find the control flow of the project, this is part of debugging, too, I think. Thnx for ur support.
|
|
|
|
|
Console.WriteLine
(sorry, couldn't resist)
|
|
|
|
|
It's suprising how often that comes in useful.
Join the cool kids - Come fold with us[ ^]
"Program as if the technical support department is full of serial killers and they know your home address" - Ray Cassick Jr., RIP
|
|
|
|
|
Yes, in all seriousness I actually use it quite a lot. I've learnt on environments where the debugger is either non-existent or so flaky one shouldn't use it, so I have a habit of dumping all relevant information to the console and looking to see which bits are wrong.
|
|
|
|
|
With such a general question you should always try a little research and study for yourself first: debugging[^].
The best things in life are not things.
|
|
|
|
|
Google and Bing are better at answering such broad questions than CodeProject forums.
|
|
|
|
|
Damn. I thought CodeProject forums were how you debugged...
|
|
|
|
|
GenJerDan wrote: Damn. I thought CodeProject forums were how you debugged...
Well, they are, sort of. See, the runtime throws a scary exception and then you run it through codeproject to get the human readable version. Sort of like a superman version of Exception::ToString().
|
|
|
|
|
There is this good article here[^] that could be useful to you.
The funniest thing about this particular signature is that by the time you realise it doesn't say anything it's too late to stop reading it.
|
|
|
|
|
Not sure what you consider "professional" level debugging, but here is an introductory video: Debugging C# in Visual Studio 2008. Some of the things covered in that video: compile errors, warnings, mouse-over errors, runtime errors, unresponsive programs, breakpoints, inspecting variable values. There are a bunch of other videos out there if that one does not suit you.
|
|
|
|
|
Hi,
1. I'm banging my head against the wall trying to write regualar expressions for local folder, shared folder and ftp paths, but didn't quite succeed as I relied on SrcString.LastIndexOf to check against illegal characters in the string as supposed to using pure regular expressions.
2. Code below - any problem? I couldn't find list of invalid char for FTP paths...
Thanks!
<br />
public static bool IsLocalPath(string strToCheck)<br />
{<br />
if (string.IsNullOrEmpty(strToCheck))<br />
{<br />
return false;<br />
}<br />
string strPattern = @"([a-zA-Z]:\\)[.]*";<br />
if (strToCheck.LastIndexOf(@"\\") >= 0)
{<br />
return false;<br />
}<br />
if (strToCheck.Contains(@"/")<br />
|| strToCheck.Contains(@"*")<br />
|| strToCheck.Contains(@"?")<br />
|| strToCheck.Contains("\"")<br />
|| strToCheck.Contains(@"<")<br />
|| strToCheck.Contains(@">")<br />
|| strToCheck.Contains(@"|")<br />
)<br />
{<br />
return false;<br />
}<br />
Regex objIsLocalPathPattern = new Regex(strPattern);<br />
return objIsLocalPathPattern.IsMatch(strToCheck);<br />
}<br />
<br />
public static bool IsShare(string strToCheck)<br />
{<br />
if (string.IsNullOrEmpty(strToCheck))<br />
{<br />
return false;<br />
}<br />
string strPattern = @"\\\\[.]*";<br />
if (strToCheck.LastIndexOf(@"\\") > 0)
{<br />
return false;<br />
}<br />
if (strToCheck.Contains(@"/")<br />
|| strToCheck.Contains(@"*")<br />
|| strToCheck.Contains(@"?")<br />
|| strToCheck.Contains("\"")<br />
|| strToCheck.Contains(@"<")<br />
|| strToCheck.Contains(@">")<br />
|| strToCheck.Contains(@"|")<br />
)<br />
{<br />
return false;<br />
}<br />
Regex objIsSharePattern = new Regex(strPattern);<br />
return objIsSharePattern.IsMatch(strToCheck);<br />
}<br />
<br />
public static bool IsFtpPath(string strToCheck)<br />
{<br />
if (string.IsNullOrEmpty(strToCheck))<br />
{<br />
return false;<br />
}<br />
string strPattern = @"[.]*";<br />
if (strToCheck.LastIndexOf(@"\\") >= 0)
{<br />
return false;<br />
}<br />
Regex objIsFtpPathPattern = new Regex(strPattern);<br />
return objIsFtpPathPattern.IsMatch(strToCheck);<br />
}<br />
dev
|
|
|
|
|
You might do better in the regex forum (this isn't really a C# question).
Broadly speaking you want a pattern like
prefix([a-zA-Z0-9#&\.]+[\\|$])+
... with prefix being "[A-Za-z]:\\", "\\\\" or empty for the three cases. $ is for the end of string; I can't remember if that's the right special character. You want a complete list of valid characters in the path section. Also, for FTP, chances are / is valid and \ may not be.
edit: the path section doesn't need to be a parenthesised group
modified on Monday, June 6, 2011 6:49 AM
|
|
|
|
|
You could always use a variant of this regex:
^((([a-zA-Z]:)(\\{2}[a-zA-Z]+)(\\{2}\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}))(?=(\\(\w[\w ]*)))(\\\w[\w ]*)*)$ This might have been better placed in the regular expression forum.
|
|
|
|