2011-04-19 47 views
0

我在開發網站。我想調用一個ashx的文件,該文件返回服務器上的所有進程列表如何在asp.net中使用ajax調用ashx文件

+0

你試過了什麼?你在哪一點卡住了? (調用URL,調用ashx,創建一個ashx,列出所有進程,返回該列表,顯示該列表,..) – 2011-04-19 12:12:40

+0

謝謝漢斯我沒有問題 – 2011-04-19 12:31:21

回答

2

第1步:創建處理程序和服務器端代碼類似下面

<%@ WebHandler LANGUAGE =「C#」類=「處理程序」% >

using System; 
using System.Web; 
using System.Linq; 
public class Handler : IHttpHandler { 

    public void ProcessRequest (HttpContext context) { 
     context.Response.ContentType = "application/json"; 

     var processes = System.Diagnostics.Process.GetProcesses(); 
     System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer(); 
     context.Response.Write(serializer.Serialize(processes.Select(p => p.ProcessName))); 


    } 

    public bool IsReusable { 
     get { 
      return false; 
     } 
    } 

} 

第2步:爲您的asp.net進程/應用程序池提供必要的權限。在開發版本中,您可以將模擬標籤添加到web.config中作爲快捷方式。

<identity impersonate="true" userName="windows/usernamer" password="password"/> 

第3步:使用 從通過AJAX或以其他方式aspx頁面處理程序的結果。使用jquery庫的例子如下。

<%@ Page Title="Home Page" Language="CS" MasterPageFile="~/Site.Master" AutoEventWireup="false" 
    CodeFile="Default.aspx.cs" Inherits="_Default" %> 

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"> 

</script> 
</asp:Content> 
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> 
    <ul id="processes"> 

    </ul> 

    <script type="text/javascript"> 
     $(function() { 
      $.get("handler.ashx", function (data) { 
       $.each(data, function (index, element) { 
        $("#processes").append($("<li />").html(element)); 
       }); 
      }); 
     });  
    </script> 
</asp:Content> 

希望這會有所幫助。

+0

非常感謝你這對我很有幫助 – 2011-04-19 12:55:04

相關問題