バックグラウンド
社内のイントラネットサーバーで内部的にホストされているASP.NETサイトがあります。サイトは、認証にクライアントのデフォルトのネットワーククレデンシャルを使用します。サイトのメインページにはDefault.aspx
、OracleサーバーからMSSQLサーバーに一部のデータを同期する次のWebメソッドが含まれています。
<WebMethod()> _
Public Shared Sub syncOracle()
OracleSync.MainSync()
End Sub
サイト自体から(たとえば、ページのボタンなどから)そのWebメソッドにアクセスすると、正常に機能し、期待どおりに機能します。
問題
このメソッドを定期的に呼び出すサーバーにスケジュールされたタスクを設定したいと思います。HTTPWebRequest
これまでの私のアプローチは、 :を介してWebメソッドにアクセスする単純なコンソールスクリプトを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
これは200の「OK」ステータスを返しますが、実際の応答を解析すると、ページからメソッドにアクセスしたときに得られる応答が得られません(代わりに、aspxページ全体のコードが得られます)。そして、同期は起動していません。
質問
誰かがより良い/異なるアプローチ(おそらくHttpWebRequestsを使用していない)またはよりうまくいくかもしれない私の現在のアプローチへの変更のいずれかについての洞察を持っていますか?前もって感謝します!