Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从控制台应用程序通过WCF服务更新asp页面中的文本框值_C#_Asp.net_Wcf_Service - Fatal编程技术网

C# 从控制台应用程序通过WCF服务更新asp页面中的文本框值

C# 从控制台应用程序通过WCF服务更新asp页面中的文本框值,c#,asp.net,wcf,service,C#,Asp.net,Wcf,Service,我有一个c#控制台应用程序计划在Win2003服务器上运行,读取磁盘空间、cpu使用率等值 现在我想在aspx页面上在线或实时显示这些值 这是我迄今为止(非工作)的尝试: WCF服务: using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.Text; namespa

我有一个c#控制台应用程序计划在Win2003服务器上运行,读取磁盘空间、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> 
但是,该值不会发送到asp页面

比尔,
Peer

我真的建议使用jQuery和restfulwcf服务。查看这篇关于CodeProject的精彩文章:


一开始这看起来像是额外的工作,但对于您正在努力实现的目标来说,这绝对是值得的。

调试WCF服务时会发生什么?将调试器附加到它并调用该方法。
static void UpdateList(string columnName, decimal diskSpaceValue)
    {
        Service1 serv = new Service1();
        DataValues dv = new DataValues();
        dv.FreeDiskSpace = diskSpaceValue;
        serv.InsertDataValues(dv);

    }