我正在使用旧的基于VB的ASP表单网站。我正在将其部分转换为C#。为此,我在App_Code中创建了一个子文件夹,并将其注册到web.config中。 我有一组由桌面应用程序使用的VB Web服务,我在子文件夹中将它们转换为C#,但它们似乎无法保持会话的持久性(它们会继续创建新的会话)。
因此从桌面应用程序调用,App_Code中的VB测试保持会话,子文件夹中的C#测试不保持会话,App_Code中的VB测试通过会话的子文件夹中的C#测试不保持会话。 通过网站本身进行调用,会话在任何情况下都将保留并持续。
即使在远程相似的情况下,也无法在线找到太多有关案件的信息。
当桌面应用调用App_code子文件夹中的Web服务时,如何保持会话持久?
App_Code中的VB类声明:
<WebService(Namespace:="xxxxxx")>
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)>
<System.Web.Script.Services.ScriptService()>
Public Class VBTest
Inherits System.Web.Services.WebService
VBTest ping方法:
<WebMethod(EnableSession:=True)> <ScriptMethod(UseHttpGet:=True, ResponseFormat:=ResponseFormat.Json)> Public Function Ping(ByVal request As String) As String
Session.SessionID ' this id is the same between calls coming from a desktop app
App_Code子文件夹中的C#类声明:
[WebService(Namespace = "xxxxx")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class CTest : System.Web.Services.WebService
及其“ ping”方法:
[WebMethod(EnableSession = true)]
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
public void Ping(String request = null)
Session.SessionID // this id is different after each call from a desktop app
// how to keep this id the same? (make it persist)