背景
我有一个 ASP.NET 站点,在我们公司的 Intranet 服务器内部托管。该站点使用客户端的默认网络凭据进行身份验证。该站点的主页Default.aspx
包含以下 Web 方法,可将一些数据从 Oracle 服务器同步到 MS SQL 服务器:
<WebMethod()> _
Public Shared Sub syncOracle()
OracleSync.MainSync()
End Sub
当我从网站本身(例如从页面上的按钮或其他东西)访问该网络方法时,它可以正常工作并按预期执行。
问题
我想在服务器上设置一个定期调用此方法的计划任务。到目前为止,我的方法是在 VB 中编写一个简单的控制台脚本,该脚本将通过以下方式访问 Web 方法HTTPWebRequest
:
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
这将返回 200 的“OK”状态,但是当我解析实际响应时,我没有得到从页面访问方法时得到的响应(相反,我得到了整个 aspx 页面的代码)。并且同步没有触发。
问题
是否有人对更好/不同的方法(可能不使用 HttpWebRequests)或对我当前可能效果更好的方法的修改有任何见解?先感谢您!