我想在我的aspx网页中调用C#脚本,帮我实现它

时间:2012-09-08 11:21:28

标签: c# asp.net invocation

我想在我的aspx网页中调用C#代码。有人可以告诉我该怎么做吗? C#代码很长,我将它保存在.cs文件中,并将其与网页文件一起放入网页目录,但当我尝试将其调用到我的网页时,页面上会发生一些服务器错误。 / p>

这是代码,请帮我正确实施。

由于

<%@ language="C#" %>
<script runat="server">
        string vservADRequest(string vservMsisdn, string vservMarkup, string vservZoneid, bool vservTestMode){
        try{
            StringBuilder vservParams = new StringBuilder();
            vservParams.Append("vr").Append("=").Append(Server.UrlEncode("1.1.0-csharp-20100726")).Append("&");
            vservParams.Append("tm").Append("=").Append(Server.UrlEncode(vservTestMode.ToString())).Append("&");
            vservParams.Append("ml").Append("=").Append(Server.UrlEncode(vservMarkup)).Append("&");
            vservParams.Append("si").Append("=").Append(Server.UrlEncode(Session.SessionID)).Append("&");
            vservParams.Append("mo").Append("=").Append(Server.UrlEncode(vservMsisdn)).Append("&");
            vservParams.Append("ip").Append("=").Append(Server.UrlEncode(Request.UserHostAddress)).Append("&");

            if(Request.Headers.GetValues("x-forwarded-for") != null)
                vservParams.Append("ff").Append("=").Append(Server.UrlEncode(Request.Headers["x-forwarded-for"])).Append("&");

            if(Request.Headers.GetValues("via") != null)
                vservParams.Append("hv").Append("=").Append(Server.UrlEncode(Request.Headers["via"])).Append("&");

            vservParams.Append("ht").Append("=").Append(Server.UrlEncode(Request.Headers["host"])).Append("&");
            vservParams.Append("ru").Append("=").Append(Server.UrlEncode(Request.Path)).Append("&");                
            vservParams.Append("ua").Append("=").Append(Server.UrlEncode(Request.UserAgent)).Append("&");

            if(Request.Headers.GetValues("x-operamini-phone-ua") != null)
                vservParams.Append("ou").Append("=").Append(Server.UrlEncode(Request.Headers["x-operamini-phone-ua"])).Append("&");

            if(Request.Headers.GetValues("x-wap-profile") != null)
                vservParams.Append("up").Append("=").Append(Server.UrlEncode(Request.Headers["x-wap-profile"])).Append("&");

            ArrayList vservNotToLog = ArrayList.Adapter(new String[] { "PRAGMA", "CACHE-CONTROL", "CONNECTION", "KEEP-ALIVE"});
            foreach (string vservHeaderName in Request.Headers){
              if (!vservNotToLog.Contains(vservHeaderName.ToUpper())){
                vservParams.Append(Server.UrlEncode("hd["+vservHeaderName+"]")).Append("=").Append(Server.UrlEncode(Request.Headers[vservHeaderName])).Append("&");
                }
            }
            vservParams.Append("zoneid").Append("=").Append(Server.UrlEncode(vservZoneid));
            ASCIIEncoding vservAscii = new ASCIIEncoding();
            byte[] vservPostBytes = vservAscii.GetBytes(vservParams.ToString());
            string vservAdUrl= "http://rq.vserv.mobi/delivery/adapi.php?"+vservZoneid;
            System.Net.HttpWebRequest vservReq = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(vservAdUrl);       
            if (vservReq != null){
                vservReq.Method = "POST";
                vservReq.ContentType = "application/x-www-form-urlencoded";
                vservReq.ContentLength = vservPostBytes.Length;
                vservReq.Timeout = 7000;
                if(Context.Items["X-VSERV-CONTEXT"]!=null && !Context.Items["X-VSERV-CONTEXT"].ToString().Equals("")){
                    vservReq.Headers.Add("X-VSERV-CONTEXT", Context.Items["X-VSERV-CONTEXT"].ToString());
                }
                // add post data to request
                System.IO.Stream vservPostStream = vservReq.GetRequestStream();
                vservPostStream.Write(vservPostBytes, 0, vservPostBytes.Length);
                vservPostStream.Close();
                System.Net.HttpWebResponse vservRes = (System.Net.HttpWebResponse) vservReq.GetResponse();
                string newVservContext=vservRes.GetResponseHeader("X-VSERV-CONTEXT");
                Context.Items.Remove("X-VSERV-CONTEXT");
                Context.Items.Add("X-VSERV-CONTEXT",newVservContext);
                System.IO.StreamReader vservSR = new System.IO.StreamReader(vservRes.GetResponseStream());
                StringBuilder vservOutput = new StringBuilder();
                vservOutput.Append(vservSR.ReadToEnd().Trim());
                vservSR.Close();
                return vservOutput.ToString();
            }else{return ""; }

            }catch (Exception vserve) { return "";}
    }
    </script>
    <%

1 个答案:

答案 0 :(得分:0)

如果您想在aspx中使用invoke方法,可以使用<% %>符号。

<% =vservADRequest("test", "test", "test", true) %>