2012-07-04 102 views
1

我有一个C#控制台应用程序定于一个双赢2003服务器读值,如磁盘空间,CPU使用率等运行更新文本框的值

现在我想显示这些值在线或实时,在aspx页面上。

这是我的(非工作)试图至今:

WCF服务:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Runtime.Serialization; 
using System.ServiceModel; 
using System.Text; 

namespace ServerMonitoring 
{ 
    public class Service1 : IService1 
    { 

     public void InsertDataValues(DataValues server) 
     { 
      FreeDiskSpace = server.FreeDiskSpace; 
      Data.FreeDiskSpace = FreeDiskSpace; 
     } 

     [DataMember] 
     public decimal FreeDiskSpace 
     { 
      get { return Data.FreeDiskSpace; } 
      set { Data.FreeDiskSpace = value; } 
     } 

    } 
} 

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Runtime.Serialization; 
using System.ServiceModel; 
using System.Text; 

namespace ServerMonitoring 
{ 
    [ServiceContract] 
    public interface IService1 
    {   
     [OperationContract] 
     void InsertDataValues(DataValues server); 
    } 

    [DataContract] 
    public class DataValues 
    { 
     [DataMember] 
     public decimal FreeDiskSpace; 
     /* 
     [DataMember] 
     public decimal TotalDiskSpace; 
     */ 
    } 
} 

尝试从代码更新文本框的背后:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace ServerMonitoring 
{ 
    public partial class _Default : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
     TextBox1.Attributes.Add("onchange", "DefaultValue();"); 
     HiddenFieldFreeDiskSpace.Value = Data.FreeDiskSpace.ToString(); 

     } 
    } 
} 

的Default.aspx:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master"     
AutoEventWireup="true" 
CodeBehind="Default.aspx.cs" Inherits="ServerMonitoring._Default" %> 

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="head"> 
    <script type="text/javascript"> 
     function DefaultValue() { 
      var data = $('#<%=HiddenFieldFreeDiskSpace.ClientID%>').val(); 
      var txt1 = document.getElementById("TextBox1"); 
      txt1.setAttribute("value", data); 
     } 
    </script> 
</asp:Content> 
<asp:Content ID="BodyContent" runat="server"  ContentPlaceHolderID="ContentPlaceHolder1"> 
    <div class="extra-wide-column"> 
     <h2> 
      FIC Server Monitoring Services 
     </h2> 
     <br /> 
     <br /> 
     <br /> 
     <h3>System</h3> 
     <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
      <ContentTemplate> 
       <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
       <asp:HiddenField runat="server" ID="HiddenFieldFreeDiskSpace" /> 
      </ContentTemplate> 
     </asp:UpdatePanel> 
    </div> 
</asp:Content> 

T他值写入到文本框是从我的控制台应用程序来与参考我的WCF服务

static void UpdateList(string columnName, decimal diskSpaceValue) 
    { 
     Service1 serv = new Service1(); 
     DataValues dv = new DataValues(); 
     dv.FreeDiskSpace = diskSpaceValue; 
     serv.InsertDataValues(dv); 

    } 

然而,价值不被发送到ASP页

BR, 同行

+0

当您调试WCF服务时会发生什么?附加一个调试器并调用该方法。 – ChrisBint

回答