我想在C#桌面应用程序中使用ASP来生成代码.
为此,我设置了一个简单的主机(派生自System.MarshalByRefObject),它通过HttpRuntime.ProcessRequest处理System.Web.Hosting.SimpleWorkerRequest.这将处理传入请求指定的ASPX脚本(使用System.Net.HttpListener等待请求).
客户端部分由System.ComponentModel.BackgroundWorker表示,它构建System.Net.HttpWebRequest并从服务器接收响应.
我的客户端部分代码的简化版本如下所示:
private void SendRequest(object sender, DoWorkEventArgs e)
{
// create request with GET parameter
var uri = "http://localhost:9876/test.aspx?getTest=321";
var request = (HttpWebRequest)WebRequest.Create(uri);
// append POST parameter
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
var postData = Encoding.Default.GetBytes("postTest=654");
var postDataStream = request.GetRequestStream();
postDataStream.Write(postData, 0, postData.Length);
// send request, wait for response and store/print content
using (var response = (HttpWebResponse)request.GetResponse())
{
using (var reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
{
_processsedContent = reader.ReadToEnd();
Debug.Print(_processsedContent);
}
}
}
我的服务器部分代码看起来像这样(没有异常处理等):
public void ProcessRequests() …