|
arkiboys wrote: Have I done everything correctly?
Obviously not. If your queue has data in it, and you can't see it then you haven't done everything correctly. Without seeing your code, I'm going to take a flier as a guess - your queue is not a singleton inside the windows service, and the WCF functionality is seeing a different instance. As I say though, we can't do anymore to diagnose the issue because we have no idea what your code is.
What you could do, is attach your debugger to the running instance of the service and actually step through the code and see what's going on. That would be my choice.
|
|
|
|
|
Hi,
Do you mean the following ?
1- start the windows service in the services list
2- in th ewindows service project, debug, attach to process, select the windows service from the list.
If thi sis what you mean, then i do not see the windows service that I started in the list of the attach to process window.
Thanks
|
|
|
|
|
Is the WCF service hosted by your Windows service?
Or is a different executable?
If the second, obviously the WCF service sees an empty queue, because it references a different object from the one used by the Windows service.
|
|
|
|
|
Yes, the wcf is separate to windows service.
|
|
|
|
|
Then, as I said, the queue you use in the WCF service is different from the one populated in the Windows service.
The WCF service must be hosted by the Windows service and reference the same instance of the queue.
See here for hosting WCF services in custom applications.
|
|
|
|
|
I see what you mean.
To make me understand better I would like to ask:
1- can my issue be solved if silverlight page accesses the method which is inside the windows service project?
I think the answer is No and even if it did I still face the same issue because it will be lokking at a different instance to the one with the queue in it.
I guess the only way to get around this is as you said to host the wcf inside the windows service project which has the queue in it being build.
Am I right please?
Thanks
|
|
|
|
|
|
|
I have now developed a simple console app based on the example:
|
|
|
|
|
Now you have a Windows service (that is actually a console application) that manages your queue, and a console application that exposes a WCF service.
What you have to do is to put the two things together: include the code of the new console app into the code of your Window Service and make sure that both reference the same queue instance.
Then, when you start the Windows service, it will also expose the WCF service that you can call from Silverlight.
|
|
|
|
|
Hi,
I don't think I have "and a console application that exposes a WCF service"
I only have a windows service.
|
|
|
|
|
You said "I have now developed a simple console app based on the example".
So I thought that you had put the WCF service on a separate Console Application.
If you have already put the WCF service into the Windows service, you should be able to browse it from IE on the url you specified when coding it (the example I gave you uses http://localhost:8080/hello).
You have only to add a service reference to your WCF service in the Silverlight application so that it can communicate with the Windows service.
|
|
|
|
|
|
Hi!
Currently my server application runs in the context of the User, that is logged on.
The application is able to create a screenshot and send it to the client and receive input data to perform on the server.
So far this works on XP to Win 2008 R2...
Now, this application should be able to take screenshots and perform user input, even before any user is logged on (similar to RealVNC) or the user decides to look the session, or switch the user...
Is there any way to accomplish this?
I read, that there are some difficulties with Session 0 Isolation on Windows Versions above Vista...
Any ideas
Thank You
Neo
|
|
|
|
|
Hi,
below is my XML file:
<Course>
<CourseInfo>
<Id>3000</Id>
<Name type="BTECH">Bachelor of Technology</Name>
<CourseInfo>
</Course>
I would like to deserialize this XML. I created classes for Course and CourseInfo.
When I tried to deserialize the xml using below code, I got Id as "3000" and Name as "Bachelor of Technology". But didn't get the type attribute. Please guide me to get the value of type attribute. Thanks in advance
public class AwardInfo
{
public string m_Id;
[XmlElement("Id")]
public string Id
{
get { return m_Id; }
set { m_Id = value; }
}
public string m_Name;
[XmlElement("Name")]
public string Name
{
get { return m_Name; }
set { m_Name = value; }
}
}
|
|
|
|
|
"Name" is not a simple type.
Create a class like this :
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public partial class CourseInfoName {
private string typeField;
private string valueField;
[System.Xml.Serialization.XmlAttributeAttribute()]
public string type {
get {
return this.typeField;
}
set {
this.typeField = value;
}
}
[System.Xml.Serialization.XmlTextAttribute()]
public string Value {
get {
return this.valueField;
}
set {
this.valueField = value;
}
}
}
In you original class replace m_name and Name by
private CourseInfoName nameField;
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable=true)]
public CourseInfoName Name {
get {
return this.nameField;
}
set {
this.nameField = value;
}
}
Cheers
If you can read this, you don't have Papyrus installed
|
|
|
|
|
|
You're welcome. Have fun with it.
Cheers
If you can read this, you don't have Papyrus installed
|
|
|
|
|
Is there some kind of a rule where global variables should have "_" before their names. For example: _MyGlobalVar
|
|
|
|
|
No. It's just one of many different conventions that have come and gone. For a while, this was suggested as a standard by Microsoft, but they no longer recommend this.
|
|
|
|
|
To add to Petes' answer: there are no global variables in C# anyway. Every variable is part of a class...
Real men don't use instructions. They are only the manufacturers opinion on how to put the thing together.
|
|
|
|
|
Absolutely not, I would never do that. IMO identifier names should be easily readable and pronounceable, no special characters, no Hungarian notation.
Luc Pattyn [Forum Guidelines] [My Articles] Nil Volentibus Arduum
Please use <PRE> tags for code snippets, they preserve indentation, improve readability, and make me actually look at the code.
|
|
|
|
|
Contrarywise; there is a rule against global variables.
But to heck with what other people call "rules"; do whatever you darn well please. Just be consistent.
And if your organization has a coding standard, follow it.
|
|
|
|
|
TCPMem wrote: Is there some kind of a rule where global variables should have "_" before their names
No there is no some kind of rule where global variables should have "_".
"_" is one of the symbol which can be used defining variable name.
you need to only follow the standard rule made for declaring Variable Name.
|
|
|
|
|
I have a Windows Forms ListBox object showing items that originate in a dictionary.
To apply different coloring etc to some of the entries I have set
dropDownListBox.DrawMode = DrawMode.OwnerDrawFixed
and handling the listbox DrawItem and MeasureItem events.
The different colored items are basically additional choices or items I add or remove depending on other factors.
These are commands if you like eg. "Advanced Filter", "Remove This Filter" etc and always appear at the top of the listbox items, and are highlighted to separate them from the normal data values.
When I show the listbox I set the dropDownListBox.SelectedItem to the previously selected item which may be well down the list.
I would like to be able to "freeze" the required top row(s) or commands eg "Advanced Filter", so that as I scroll down, or the listbox shows with the previously selected item, the required rows are always visible.
This would save scrolling back right back to the start to select "Advanced Filter".
Not having much joy so far, can anyone assist?
Thanks
AussieLew
DrawItem and MeasureItem handlers below...
void dropDownListBox_DrawItem(object sender, DrawItemEventArgs e)
{
Brush myBrush = Brushes.Green;
Brush backBrush = Brushes.Red;
string listString = dropDownListBox.Items[e.Index].ToString();
e.DrawBackground();
switch (listString)
{
case "Advanced Filter...":
myBrush = Brushes.DarkGreen;
backBrush = Brushes.PaleGreen;
e.Graphics.FillRectangle(backBrush, e.Bounds);
if (filterCommandFlag == 2)
{
e.Graphics.DrawLine(Pens.Green, e.Bounds.Left, e.Bounds.Bottom - 1, e.Bounds.Right, e.Bounds.Bottom - 1);
}
break;
case "Remove This Filter":
myBrush = Brushes.DarkGreen;
backBrush = Brushes.PaleGreen;
e.Graphics.FillRectangle(backBrush, e.Bounds);
break;
case "Remove All Filters":
myBrush = Brushes.OrangeRed;
backBrush = Brushes.PaleGreen;
e.Graphics.FillRectangle(backBrush, e.Bounds);
if (filterCommandFlag > 3 && filterCommandFlag < 8)
{
e.Graphics.DrawLine(Pens.Green, e.Bounds.Left, e.Bounds.Bottom - 1, e.Bounds.Right, e.Bounds.Bottom - 1);
}
break;
case "Blanks":
myBrush = Brushes.OrangeRed;
backBrush = Brushes.PaleGreen;
e.Graphics.FillRectangle(backBrush, e.Bounds);
break;
case "NonBlanks":
myBrush = Brushes.OrangeRed;
backBrush = Brushes.PaleGreen;
e.Graphics.FillRectangle(backBrush, e.Bounds);
if (filterCommandFlag > 7)
{
e.Graphics.DrawLine(Pens.Green, e.Bounds.Left, e.Bounds.Bottom - 1, e.Bounds.Right, e.Bounds.Bottom - 1);
}
break;
}
if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)
{
e.Graphics.FillRectangle(Brushes.SpringGreen, e.Bounds);
}
e.Graphics.DrawString(listString, e.Font, myBrush, e.Bounds, StringFormat.GenericDefault);
}
private void dropDownListBox_MeasureItem(object sender, MeasureItemEventArgs e)
{
Font font = dropDownListBox.Font;
SizeF stringSize = e.Graphics.MeasureString(font.Name, font);
e.ItemHeight = (int)stringSize.Height;
}
|
|
|
|