サードパーティの Web サービスにリクエストを送信し、VB.net プログラム (.net 3.5) に基づいて C# コード (.net 4.0) を作成しています。コマンドをほとんど正確にコピーしていますが、ドメインとしてクッキーに何を追加しても機能せず、コンテナにクッキーを追加すると常にエラーが発生します。
'Domain'=' https://secure.uat.globallink.com/gtss/service/FileWebService ' Cookie の部分が無効です。
VB.net プログラムは、このコードと本番環境で正常に動作します。なぜこれが起こっているのか分かりません。.add メソッドは 3.5 と 4.0 の間で同じであり、インターネット上に出回っているこの BugFix_CookieDomain コードを試してみました (私はこの 1 つの Cookie しか持っていません)。また、うまくいかない URI フィールドを追加して、ドメインを「https://secure.uat.globallink.com」に変更しようとしましたが、何も機能しません。助けてください、私はここで少しおかしくなりそうです。ありがとう!
C#
GTSSWebService.FxWebService wsDL = new GTSSWebService.FxWebService();
wsDL.Credentials = new NetworkCredential(connectionCreds, Settings.mySettings.GTSSPassword);
wsDL.CookieContainer = new CookieContainer();
wsDL.Url = "https://secure.uat.globallink.com/gtss/service/FxWebService";
Cookie gtssConnCookie = new Cookie("SMCHALLENGE", "YES");
gtssConnCookie.Domain = "https://secure.uat.globallink.com/gtss/service/FileWebService";
wsDL.CookieContainer.Add(gtssConnCookie);
動詞
Dim wsDL As New GTSSWebService.FxWebService
wsDL.Credentials = New System.Net.NetworkCredential(sCreds, Settings.DefaultSettings.PW)
wsDL.CookieContainer = New System.Net.CookieContainer
If Settings.DefaultSettings.ConnectLTS Then
wsDL.Url = "http://" & Settings.DefaultSettings.LTSIP & "/gtss/service/FxWebService"
Else
wsDL.Url = Settings.DefaultSettings.GTSSURL.Replace("/FileWebService", "/FxWebService")
Dim GTSSConnectionCookie As New Cookie("SMCHALLENGE", "YES")
GTSSConnectionCookie.Domain = Settings.DefaultSettings.GTSSURL
wsDL.CookieContainer.Add(GTSSConnectionCookie)
注 - Settings.DefaultSettings.GTSSURL == " https://secure.uat.globallink.com/gtss/service/FileWebService "