gpt4 book ai didi

c# - 从 C# 应用程序到 ASP.NET 应用程序的通信

转载 作者:行者123 更新时间:2023-11-28 01:04:56 27 4
gpt4 key购买 nike

我正在为 ASP.NET 应用程序创建主机应用程序 (C#)。我想要完成的是让 ASP 应用程序从 C# 应用程序获取事件。有了这些数据,我需要从 ASP 客户端调用带有 HTTP 上下文/ session 的服务器端函数。可以仅使用查询字符串刷新页面。

我目前有两种方法:

1) 使用 net.tcp 的 C# WCF 到 ASP Communication overview - net.tcp C# to ASP.NET问题:直接联系服务器端层时, session (HTTP 上下文)为 NULL。我可以更新静态变量等,但我无法告诉客户端使用查询字符串刷新/导航(这样我就可以在下一个 page_load 时获取上下文)。

2) C# WebBrowser.Document.InvokeScript(myJavascript()) C# WebBrowser.Invoke to JS

问题:当我到达 ASP 应用程序的服务器端时,我无法访问静态变量(由于某种原因它们为 NULL)。我尝试过使用 Session["MyVariable"] = "test";在 page_load 中,调用 javascript 函数并检查 session 变量,但这是 NULL。

任何帮助或指向正确方向的指示都会非常有帮助。如果需要,我将附上一些代码示例。

谢谢!

编辑1:从我的 WebBrowser 中我只能看到 Default.aspx 页面,因此当从问题 #2 创建 javascript 函数时,我需要在此文件中创建它。如果不是,我将无法调用它。

最佳答案

对于问题 1,您是否尝试启用 asp.net 兼容性?

Services running in ASP.NET Compatibility mode participate fully in the ASP.NET application pipeline and can make use of ASP.NET features such as file/URL authorization, session state, and the HttpContext class.

这里有几个链接:

WCF Services and ASP.NET

ASP.NET Compatibility

您可以使用 AspNetCompatibilityRequirementsMode.Required 来装饰您的服务实现,以明确建议 WCF 这些实现必须要求在 web.config 中启用 asp.net 兼容性,否则您可以保留 AspNetCompatibilityRequirementsMode.Allowed 不会强制执行它,但如果启用了 asp.net comp,仍然能够读取 HttpContext。

关于服务实现:

[AspNetCompatibilityRequirements(RequirementsMode =
AspNetCompatibilityRequirementsMode.Required)]

在system.serviceModel下:

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

关于c# - 从 C# 应用程序到 ASP.NET 应用程序的通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25198290/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com