![](/img/trans.png)
[英]How to create a full screen application in Win CE 6.0 using .NET Compact Framework 3.5?
[英]Why does my AsyncCallback takes minutes? (C# using Compact Framework 3.5 on Win CE 5.0 Barcode Scanner)
几天前,我开始使用Compact Framework 3.5为在C#上WinCE 5.0上运行的条形码扫描仪进行编码。 我很难让我的异步HttpWebRequest来完成它应该做的事情。 (特别是因为它是CF3.5。)现在,它可以工作了……但是要完成请求需要1-3分钟。
private void xmlRequestButton_Click(object sender, EventArgs e)
{
System.Uri myUri = new System.Uri("http://www.mydomain.de/someFolder/index.php");
HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequest.Create(myUri);
myRequest.Method = "POST";
myRequest.ContentType = "text/html";
myRequest.SendChunked = true;
myRequest.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), myRequest);
}
private static void GetRequestStreamCallback(IAsyncResult callbackResult)
{
HttpWebRequest myRequest = (HttpWebRequest)callbackResult.AsyncState;
Stream postStream = myRequest.EndGetRequestStream(callbackResult);
string postData = "testparam=testvalue";
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
postStream.Write(byteArray, 0, postData.Length);
postStream.Close();
myRequest.BeginGetResponse(new AsyncCallback(GetResponsetStreamCallback), myRequest);
}
private static void GetResponsetStreamCallback(IAsyncResult callbackResult)
{
HttpWebRequest request = (HttpWebRequest)callbackResult.AsyncState;
HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(callbackResult);
Stream streamResponse = response.GetResponseStream();
StreamReader streamRead = new StreamReader(streamResponse);
string responseString = streamRead.ReadToEnd();
Console.WriteLine(responseString);
streamResponse.Close();
streamRead.Close();
response.Close();
allDone.Set();
}
我的Web服务每次访问时都会记录日志。 它只是呼应“成功”。 起初,我认为WebRequest根本不起作用。 但是当我无意中停止了一段时间的调试时,我意识到调试是可行的,但是花费了很长时间。 设备甚至将答案“成功”记录到控制台。 那么怎么可能花那么长时间呢? 我有什么想念的吗?
我的目标是设备扫描一些条形码,然后联系网络服务,该服务会返回产品名称和其他信息。
为什么使用此SCU客户端? 此CE5设备(哪种型号)上没有预装合适的设备?
您使用的服务器是否可以通过Internet或Intranet使用? 看起来您有TCP / IP DNS或路由问题。 请尝试vxUtils(剑桥软件-免费)ping等来验证连接。
您已经意识到设备可能会使用PC进行Internet连接(ActiveSync / WMDC passthru)。 请在没有活动的ActiveSync / WMDC连接的情况下尝试使用TCP / IP(和您的应用程序)。 您仍然可以在首次部署/调试会话开始后进行调试,因为VS会记住设备的IP地址并将其用于后续会话,即使设备未连接到USB(WMDC)。 另请参阅Visual Studio SmartDevice远程调试。
如果您找不到网络问题,请返回您的详细发现。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.