【问题标题】:IIS Session isolation problemIIS Session 隔离问题
【发布时间】:2010-11-10 04:08:52
【问题描述】:

我正在使用ShDocVW.InternetExplorer 类来生成一个新的 Internet Explorer 对象并进行一些表单填充工作(对于某些共享点工作)。它在我自己的以 Windows 7 作为操作系统的机器上运行良好。但是当我在 windows server 2003 机器上部署相同的东西时,它并没有弹出 Internet Explorer 窗口。当我检查任务管理器时,我可以看到一个新的 iexplore 进程,但会话 ID = 0(但在 Windows 7 中会话 ID = 1)。所以,我看到这是关于 IIS 会话隔离的事情。那么,是否可以将 ShDocVW.InternetExplorer 实例分配给某种新的 System.Diagnostics.Process 并完成此任务?或者我们可以启动一个会话 ID = 1 的新 ShDocVW.InternetExplorer 实例吗?

提前致谢。

【问题讨论】:

  • 为什么要启动IE来填表?为什么不直接以编程方式发布值?
  • 因为我需要在填完表单后找到返回网页的状态...这是通过shDocVw.internetexplorer中的DocumentCompleted方法分析来完成的

标签: c# asp.net sharepoint-2007 iis-6


【解决方案1】:

我不太清楚你在做什么,但如果产生 ShDocVW.InternetExplorer 进程的应用程序是 ASP.NET 应用程序,那么你将看不到窗口,因为 IIS 作为 Windows 服务运行,因此 Windows服务使用与您登录时使用的桌面不同的“桌面”。因此,您永远不会看到任何 Windows 和 Windows 服务应用程序启动。

我认为您应该做的是创建一个 GUI 应用程序来实例化您的资源管理器窗口。

【讨论】:

  • 但我想要的是在我单击 aspx 页面中的控件时生成一个新的 Internet Explorer 实例。
  • 在服务器还是客户端?如果创建 ShDocW 实例的代码是服务器端代码,那么您将在服务器进程的进程空间中创建它,即 IIS,正如我之前解释的那样,它是 Windows 服务,因此您永远不会看到该实例浏览器
【解决方案2】:

基本上,问题在于您正在尝试通过代码执行某些操作,并且由于这将在服务器上运行,您将看到在服务器上生成了一个进程......而不是在您假设的客户端上。它正在您的开发机器上运行,因为您本来会为您的项目使用 FileSystem,并且您的项目页面由 cassini 提供服务 - 在您自己的机器上启动的 Web 开发服务器。

填写表格的方法是错误的。您应该使用 POST 请求并读取服务器上的值,以便对已发布的数据进行必要的处理。

【讨论】:

    【解决方案3】:

    是的...我得到了问题的答案,在 IIS 中,我们无法使用默认设置的 Shell Execution 生成进程...如果我们需要这样做,则需要设置 2 个解决方法从here 找到。顺便说一句,非常感谢你们的投入和支持,这有助于我解决这个问题。干杯...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-06
      • 1970-01-01
      • 2015-12-08
      • 1970-01-01
      • 2013-10-23
      • 2010-11-10
      相关资源
      最近更新 更多