我提出了第三方 Web 服务的请求,并基于 VB.net 程序 (.net 3.5) 编写了我的 C# 代码 (.net 4.0)。我几乎完全复制了命令,但是无论我将什么作为域添加到我的 cookie 中,它都不起作用,并且在我将 cookie 添加到容器时总是给我错误。
cookie的 'Domain'=' https://secure.uat.globallink.com/gtss/service/FileWebService ' 部分无效。
VB.net 程序在此代码和生产环境中都能正常工作。我不知道为什么会这样。.add 方法在 3.5 和 4.0 之间是相同的,我已经尝试了这个在互联网上漂浮的 BugFix_CookieDomain 代码,没有任何帮助(我只有这个 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);
VB
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 "