我的问题的初衷是:
公司原来有一个ASP网站,现在我想挂接一些asp.net的页面上去,为从asp页面转到.net页面时,不再验证,我想利用原来的ASP验证方法,由于大部分ASP代码中都有checkLogin()的调用,因此我将这个调用单独写到一个AspToAspx.asp文件中:
-----------------------------------
<!--#include file="conn.asp"-->
<%checkLogin()%>
-----------------------------------
其中,checkLogin()登录成功时,显示"登录成功",失败时显示“登录失败”,现在我想在.net中利用WebClient或WebRequest获取此网页内容,从中检索登录的结果字符串(以WebClient为例):
string url = "http://127.0.0.1/AspToAspx.asp";//注意:asptoaspx.asp和本页面在同一个web站点。
WebClient client = new WebClient();
StreamReader sr = new StreamReader(client.OpenRead(url), System.Text.Encoding.Default);
string result=sr.ReadToEnd();
sr.Close();
//这里对reslut进行登录结果的检索。
---------------------------
问题是当url是同一个站点时,报如下错误,如果是另外的站点工作就OK,如果要实现这种功能该如何编程?
[SocketException (0x3e5): 重叠 I/O 操作在进行中。]
System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) 1018107
System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) 119
[IOException: 无法从传输连接中读取数据: 重叠 I/O 操作在进行中。。]
System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) 267
System.Net.PooledStream.Read(Byte[] buffer, Int32 offset, Int32 size) 21
System.Net.Connection.SyncRead(HttpWebRequest request, Boolean userRetrievedStream, Boolean probeRead) 301
..............
如果上面的想法实现的话,ASP和asp.net就可以共享页面的公共部分,如:
string url = "http://127.0.0.1/header.asp";
WebClient client = new WebClient();
StreamReader sr = new StreamReader(client.OpenRead(url), System.Text.Encoding.Default);
string header=sr.ReadToEnd();
sr.Close();
Response.Write(header);
//其它处理
//这样,就可以将asp网站中的公共的header部分直接拿到asp.net中。



博客
资料
短消息
搜索
加为好友
成为Fans
未选省份
