从外部脚本调用ASP.NET pagemethod 背景

从外部脚本调用ASP.NET pagemethod 背景,asp.net,vb.net,httpwebrequest,webmethod,Asp.net,Vb.net,Httpwebrequest,Webmethod,我有一个ASP.NET网站,托管在我们公司的内部网服务器上。站点使用客户端的默认网络凭据进行身份验证。网站的主页Default.aspx包含以下web方法,该方法将一些数据从Oracle服务器同步到MS SQL server: <WebMethod()> _ Public Shared Sub syncOracle() OracleSync.MainSync() End Sub 这将返回一个200的“OK”状态,但是当我解析实际响应时,我没有得到从页面访问方

我有一个ASP.NET网站,托管在我们公司的内部网服务器上。站点使用客户端的默认网络凭据进行身份验证。网站的主页
Default.aspx
包含以下web方法,该方法将一些数据从Oracle服务器同步到MS SQL server:

<WebMethod()> _
Public Shared Sub syncOracle()        
    OracleSync.MainSync()
End Sub
这将返回一个200的“OK”状态,但是当我解析实际响应时,我没有得到从页面访问方法时得到的响应(相反,我得到了整个aspx页面的代码)。同步没有启动

问题:
是否有人对更好/不同的方法(可能不使用HttpWebRequests)或对我当前方法的修改有任何见解,这些方法可能更有效?提前谢谢你

到目前为止,您可以做的最简单的事情是删除页面方法并切换到使用简单的通用处理程序

使用通用处理程序,您不会拥有所有标准的web表单页面生命周期,相反,它为您提供了一种极其灵活和简单的方式来运行您所描述的处理


因此,我将向项目中添加一个通用处理程序(.ashx)文件。把你需要运行的代码放进去。然后简单地从控制台脚本执行页面

这在最近的工作中已经讨论过了,我们的一位开发人员提出了一种聪明的方法,捕获cookie过期时引发的事件,并附加他想在那里执行的任何操作。然后,根据给定的过期时间,它可以像调度器一样工作。他为此写了剧本。另一个实现是使用带有VB脚本的调度程序,但我不知道细节。工作非常出色。不知道为什么我没想到!
Sub Main()
    Dim myReq As HttpWebRequest = _
       WebRequest.Create("http://vm-prod1/dev/default.aspx/syncOracle")
    myReq.Credentials = CredentialCache.DefaultNetworkCredentials
    myReq.Method = "POST"
    myReq.ContentLength = 0

    Dim response As HttpWebResponse = CType(myReq.GetResponse(), HttpWebResponse)

    Console.WriteLine(response.StatusCode)

    Console.ReadKey()
End Sub