首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为ASP.NET WebForms Web应用程序中的所有用户保持一个interop office应用程序处于活动状态(直到IIS重新启动

在ASP.NET WebForms Web应用程序中,要保持一个interop office应用程序处于活动状态直到IIS重新启动,可以采取以下步骤:

  1. 在ASP.NET Web应用程序中,创建一个全局静态变量来存储interop office应用程序的实例。这样可以确保应用程序的所有用户共享同一个实例。
  2. 在应用程序的启动事件中,实例化interop office应用程序,并将其赋值给全局静态变量。例如,在Global.asax文件的Application_Start事件中添加以下代码:
代码语言:csharp
复制
protected void Application_Start(object sender, EventArgs e)
{
    // 实例化interop office应用程序
    var officeApp = new Microsoft.Office.Interop.Excel.Application();

    // 将应用程序实例赋值给全局静态变量
    OfficeAppManager.OfficeAppInstance = officeApp;
}
  1. 创建一个自定义的HttpModule,用于在每个请求开始和结束时检查interop office应用程序的状态。在请求开始时,检查全局静态变量是否为空,如果为空,则重新实例化interop office应用程序并赋值给全局静态变量。在请求结束时,确保释放interop office应用程序的资源。以下是一个简单的示例:
代码语言:csharp
复制
public class OfficeAppModule : IHttpModule
{
    public void Init(HttpApplication context)
    {
        context.BeginRequest += OnBeginRequest;
        context.EndRequest += OnEndRequest;
    }

    private void OnBeginRequest(object sender, EventArgs e)
    {
        // 检查全局静态变量是否为空
        if (OfficeAppManager.OfficeAppInstance == null)
        {
            // 实例化interop office应用程序
            var officeApp = new Microsoft.Office.Interop.Excel.Application();

            // 将应用程序实例赋值给全局静态变量
            OfficeAppManager.OfficeAppInstance = officeApp;
        }
    }

    private void OnEndRequest(object sender, EventArgs e)
    {
        // 释放interop office应用程序的资源
        if (OfficeAppManager.OfficeAppInstance != null)
        {
            OfficeAppManager.OfficeAppInstance.Quit();
            Marshal.ReleaseComObject(OfficeAppManager.OfficeAppInstance);
            OfficeAppManager.OfficeAppInstance = null;
        }
    }

    public void Dispose()
    {
    }
}
  1. 在Web.config文件中注册自定义的HttpModule。在<system.web>节点下添加以下配置:
代码语言:xml
复制
<httpModules>
  <add name="OfficeAppModule" type="YourNamespace.OfficeAppModule" />
</httpModules>
  1. 确保在IIS重新启动时,全局静态变量会被重置为空。可以在Global.asax文件的Application_End事件中添加以下代码:
代码语言:csharp
复制
protected void Application_End(object sender, EventArgs e)
{
    // 释放interop office应用程序的资源
    if (OfficeAppManager.OfficeAppInstance != null)
    {
        OfficeAppManager.OfficeAppInstance.Quit();
        Marshal.ReleaseComObject(OfficeAppManager.OfficeAppInstance);
        OfficeAppManager.OfficeAppInstance = null;
    }
}

通过以上步骤,可以在ASP.NET WebForms Web应用程序中保持一个interop office应用程序处于活动状态,直到IIS重新启动。请注意,这只是一个简单的示例,实际应用中可能需要更多的错误处理和资源管理。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

神秘APT组织锁定(IIS)Web服务器,擅长规避恶意软件检测

Praying Mantis利用漏洞就是针对ASP.NET反序列化实现,ASP.NET是一种用于开发托管在Windows IIS Web服务器上Web应用程序开源框架。...ASP.NET允许应用程序用户会话作为序列化对象存储在MSSQL数据库,然后为它们分配唯一cookie。...IIS量身定制恶意软件框架 黑客利用这些RCE漏洞反射性地将恶意DLL加载到易受攻击Web服务器内存。然后,这个DLL又反射性地加载了一个恶意软件组件。...研究人员表示, “如果您 Web 应用程序使用ASP.NET会话状态,请确保只能从合法网络位置访问数据库。...尽可能在不同IIS服务器/Web应用程序之间分离会话状态MSSQL数据库,或者使用适当最小CRUD权限创建不同SQL用户

1.7K40

架构探索之会话状态Web Farm、负载均衡器

使用会话状态管理是最好ASP.NET功能之一,因为它是安全,对用户是透明,我们可以在其中存储任何类型对象。...该服务器可能运行在同一个系统上,但它不在运行Web应用程序应用程序域。这意味着如果你重新启动ASP.NET进程,你会话数据将仍然存在。...如图所示,在IIS,可能有多个应用程序池,每个应用程序池至少有一个工作进程。Web Garden应该包含多个工作进程。 在Web应用程序中使用Web Garden有一定限制。...在我例子,我也解释了如果你重新启动IIS,你仍然可以访问你会话数据。...StateServer:我已经解释了状态服务器是什么以及如何配置状态服务器等等。对于Web场景,您可以轻松了解这一点重要性,因为所有会话数据都将存储在一个位置。 ?

1.4K30

ASP.NET Core: 全新ASP.NET !

System.Web 主机与 IIS 耦合度很高,所以要想运行在另一台主机上会非常困难。 后来 OWIN 作为应用程序Web 服务器中间接口出现。...Microsoft 开发了 Katana 作为一个 OWIN 实现,可以部署 ASP.NET Web API, SignalR 和其他第三方框架,这些框架可以在 IISIIS Express,...动态Web开发 Visual Studio 2015 一个非常酷特性就是支持动态编译。在过去 ASP.NET ,当我们修改了应用后台代码,我们需要重新编译并且运行才能看到页面的变化。...2 SignalR 3 ASP.NET Core 也是以 SignalR 3 基础,这使得你可以向云连接应用程序添加实时功能。... ComponentOne Studio for Asp.net MVC,它兼容 ASP.NET Core RC2 版本,是一款快速轻量级控件来满足用户所有需求。

11.3K101

ASP.NETSession详细解释

另外,重起或者关闭IIS服务都会造成信息丢失。 Session状态使用范围局限性:刚一个用户一个网站访问到另外一个网站时,这些Session信息并不会随之迁移过去。...其中服务器配置文件会对IIS服务器下所有的站点中所有应用程序起作用。...如果你网站有且只有一个Web应用程序,一般说来应用程序根目录就是/Inetpub/wwwroot。如果想添加一个Web应用程序,在IIS添加一个具有应用程序起始点虚拟目录就行了。...这个目录下文件及目录将被视为一个Web应用程序。但是,这样通过IIS添加Web应用程序是不会为你生成Web.config文件。...在ASP.NETWeb.config修改保存后会自动立刻成效,不用再像ASP配置文件修改后需要重新启动Web应用程序才能生效了。

1.2K20

windowServer_windowsserver是什么

AppFabric 缓存功能向 Windows Server 添加了一个分布式内存对象缓存,它使扩展高性能 .NET 应用程序(特别是 ASP.NET 应用程序)变得更加容易。   ...同时,由于按需激活和进程回收,因此托管长期运行进程(例如,IIS 和 WAS 工作流)十分具有挑战。如果应用程序要求,则状态暂留和主机激活必须由开发人员明确配置。...AppFabric 可在系统故障或重新启动时,通过使用暂留提供程序实现上述目标,该提供程序允许 WF 服务将其状态保存到暂留数据库,然后在正常系统上继续执行。   ...从应用程序收集信息可通过使用跟踪配置文件来进行自定义,使用跟踪配置文件可以捕获信息,例如活动状态(启动、停止和错误)、工作流内特定变量内容或者应用程序通过使用自定义跟踪记录发出自定义跟踪信息。...在下图中,命名缓存跨群集中所有缓存主机,但区域仅限于群集中一个缓存主机。 命名缓存   命名缓存也称为缓存,是一个可配置内存存储单元,所有应用程序都使用该单元将数据存储在分布式缓存

1.8K100

IIS 7.0探索用于 Windows Vista Web 服务器和更多内容

IIS 7.0 核心是一个完全模块化 Web 服务器,它由 40 多项功能组成,这些功能可以组合成一个针对在应用程序拓扑所需角色经过优化小型 Web 服务器。...通过让基于 .NET Framework 应用程序轻松访问 IIS 配置及状态信息,编写基于 .NET 安装和管理应用程序,甚至是直接从 ASP.NET 页执行管理任务,提供了可能。...在直到 6.0 版 IIS 版本ASP.NET 均作为独立应用程序框架连接到 Web 服务器。...新 URL 授权功能从 ASP.NET URL 授权功能发展而来,可以用于整个应用程序配置声明性访问控制规则。利用这些访问规则可以根据用户名和角色允许或拒绝对应用程序对 URL 访问。...此功能称为运行库状态和控制 API,或 RSCA(读作“reeska”),它可以公开站点和应用程序活动状态、运行工作进程,甚至允许您查看当前正在服务器上执行请求。

5K90

Asp.net管道模型(管线模型)之一发不可收拾

上图左边IIS5.X WEB SERVER,右边Asp.net Application工作进程(worker process),Asp.net是以作为IIS组件形式扩展IIS。   ...server类型):1.开始->所有程序->管理工具->服务->开启 Asp.net状态服务,然后配置一下网站web.config<sessionState mode="StateServer" stateConnectionString...在非Web Garden模式下一个Application对应一个应用程序池,对应一个工作进程,6.x开始工作进程从Aspnet_wp改为w3wp;在Web Garden模式下一个Application对应一个应用程序池...IIS5.x识别请求属于哪个Application是在工作进程用户模式下实现,而IIS6.x是由Web Serverhttp.sys在核心模式实现IIS5.x是Aspnet_isapi.dll...一般地,用户程序运行在User mode下,而操作系统代码运行在Kernel Mode下。Kernel Mode代码允许访问所有系统内存和所有CPU指令。

2.3K90

AppFabric 版本区分

KB983484 您必须安装 KB983484 以防止在启动包含 IIS 7.5 多个应用程序网站时意外预加载某些服务。安装此项目后,可能需要重新启动计算机。...KB983484 您必须安装 KB983484 以防止在启动包含 IIS 7.5 多个应用程序网站时意外预加载某些服务。安装此项目后,可能需要重新启动计算机。...AppFabric 是一组集成技术,可更轻松地生成、扩展和管理 IIS 上运行 Web 应用程序和复合应用程序。...您轻松生成和管理复合应用程序提供了全新功能,包括: Visual Studio 增强设计和开发工具,可生成功能强大复合应用程序 通过与 IIS Manager 和 Windows PowerShell...此版本已添加下列 AppFabric 缓存功能: Read-through(同步读取)和 write-behind(事后写入)提供程序支持 正常关闭 域帐户支持 新 ASP.NET 会话状态和输出缓存提供程序

85720

Windowsapp_windowsserver是什么

缓存服务提供了全面且完全备案 API 集,以将内存缓存使用与基于 .NET 应用程序集成。 此外,与 ASP.NET 无缝集成支持在缓存存储会话状态。...您可以使用自己选择自定义暂留存储。 而且,AppFabric 托管管理您提供了监控暂留数据库活动所需工具,或长期运行工作流。...在将监控应用程序执行成本保持一个适当水平同时,还可以灵活更改生成数据查询,以及选择监控级别,以使您能够收集足够数据来监控应用程序运行状况。...必要时,可以恢复、挂起、取消或终止暂留工作流实例以及启动或停止服务。 由于用户界面基于 IIS Manager,因此基于 WCF 和 WF 服务管理员体验和工具与 Web 应用程序类似。...在 IIS Manager AppFabric 扩展,可以轻松枚举某台服务器上服务,并可以轻松更改查询以调整数据。 可以看到处于运行状态或非运行状态工作流实例数量。

1K30

Web开发在过去20多年时间里如何改变了我

2001年,我开始陶醉于ASP.NET和VB.NET,并用到了产品直到2006年底才不再这么干。2007年年底,我开始使用C#编写ASP.NET。...ASP.NET MVC出现了,web这个东西开始再次比ASP.NET WebForms感受更自然点。从一个ASP.NET开发人员角度来看,web开始变得更好:更加干净、灵活、轻便和自然。...第一个单页应用程序框架(对不起,我不想提蹩脚ASP.NET AJAX…)出现了,UI逻辑从服务器转移到了客户端。...这也就是说使用无状态web工作,而不是试图修复它。使用Request和Response比传统ASP.NET MVC工作起来更直接,比ASP.NET WebForms甚至就更直接得多。...几个星期前,我启动了我第一个真正NodeJS项目:一个使用NodeJS来用户提供高度灵活脚本运行时桌面应用程序

1.5K60

ASP.NET Core 基础知识】--部署和维护--部署ASP.NET Core应用程序

配置应用程序池:在IIS创建一个应用程序池,并确保其目标.NET CLR版本“无托管代码”(No Managed Code),以便支持托管在IISASP.NET Core应用程序。...配置IIS站点:在IIS创建一个站点,并将站点物理路径指向之前发布应用程序目录。...创建Web App服务:在Azure门户创建一个Web App服务,选择合适定价层和资源规格。 配置应用程序设置:在Web App设置,配置应用程序环境变量、连接字符串等信息。...对输出内容进行HTML编码,确保用户输入不会被解释HTML标签和脚本。...更新和维护 定期更新 定期更新应用程序依赖项和组件,确保应用程序使用软件和库处于最新安全状态。 安全配置 配置安全性功能和设置,确保应用程序安全配置符合最佳实践和安全标准。

4200

IIS执行原理

因此,HTTP.SYS不会受到用户代码影响,它始终处于稳定运行状态,对用户http请求进行监听,并及时作出反应。...IIS处理 W3SVC W3SVC服务是一个独立运行程序,寄宿在svchost.exe进程,负责用户参数监视和重新启动应用池工作。...3-1. w3wp.exe会根据IISISAPI扩展读取对应处理Dll,用asp.net举例:当用户访问网站是asp.net平台,则 类型是.cshtml和.aspx文件类型。...IIS应用程序映射: ? IIS处理流程: ? 3-2. 当ISAPI加载后,会启动一个ASP.NET工作进程,把信息控制权交给Asp.Net来处理。...说到这里,把IIS请求流程简单做了说明,后面的工作就由Asp.Net去完成了。 .Net程序运行过程 说到Asp.Net运行,不得不先说下.Net运行机制(算是后面的文章做一个铺垫)。

2.1K21

IIS 5.x与ASP.NET

对于寄宿于IIS 5.x所有Web 应用都运行在同一个进程(工作进程Aspnet_wp.exe)不同AppDomain。...,尽管采用性能最好命名管道,但是仍然会带来性能瓶颈; 所有ASP.NET应用,运行在相同进程(aspnet_wp.exe)不同应用程序域(AppDomain),基于应用程序隔离级别不能从根本上解决一个应用程序对另一个程序影响...HTTP.SYS能够带来如下好处: 持续监听:由于HTTP.SYS是一个网络驱动程序,始终处于运行状态,对于用户HTTP请求,能够及时作出反应; 更好稳定性:HTTP.SYS运行在操作系统内核模式下...IIS 6引入了应用程序概念,一个工作进程对应着一个应用程序池。一个应用程序池可以承载一个或者多个Web应用,每个Web应用映射到一个IIS虚拟目录。...对于后续请求,空闲HttpApplication对象会从池中取出,如果池中所有的HttpApplication对象都处于繁忙状态ASP.NET会创建新HttpApplication对象。

2.7K20

添加config文件_config配置文件

在我们在进行web应用程序开发,测试 部署过程,有三个配置文件也需要我们去很好认识,并牢记他们。...所以从文件名称我们就可以推测出,这个文件中所这是的所有信息, 是给整台服务器内所有web应用程序。...比如我们有一个商城活动应用程序,我们需要设定 一个可控商城活动起始时间和结束时间,我们可以在此进行设置。 system.Web: 控制Asp.net运行时行为....HttpHandler: Handler自定义设置,或者添加自定义Handler ApplicationHost.config IIS我们提供了一个高度集成Web应用程序平台,用来管理并运行我们...而对于iis7.0+ 使用applicationHost.config web服务器和进程保存IIS配置。

1.7K30

Visual Studio 调试系列12 远程调试部署在远程计算机IISASP.NET应用程序

如果需要帮助,确保您应用程序设置已完成,部署,并正确运行在 IIS ,以便可以调试,请按照本主题中所有步骤。...在“角色服务”步骤,选择所需 IIS 角色服务,或接受提供默认角色服务 。 如果你想要启用部署使用发布设置和 Web 部署,请确保IIS 管理脚本和工具处于选中状态。...可以使用ipconfig获取 IPv4 地址命令行。 勾选“显示所有用户进程” 。 键入进程名称,可以快速找到一个字母w3wp.exe ASP.NET 4.5。...如果有多个进程显示w3wp.exe,检查用户名列。 在某些情况下,用户名列显示你应用程序池名称,如IIS APPPOOL\DefaultAppPool。...如果你看到应用程序池标识正确进程简单办法是创建一个新应用池命名为你想要调试应用程序实例,然后您可以找到它轻松地在用户名列。 ? 单击“附加” 打开远程计算机网站。

3.9K10

Windows 2008 R2 Server Core .NET环境配置

Windows Server 2008 R2ServerCore包含了.NETFramework2.0/3.0/3.5子集,这使得ServerCore几乎可以支持ASP.NET所有特性,但是还有一些限制需要注意...现在Server Core服务器已经可以支持ASP.NET应用,但是,现在ServerCore并没有Windows 2008那样具有GUIIIS管理控制台,这时候如果用户需要创建Web站点和Web应用...远程管理服务已经安装好,但是需要注意是默认情况下服务是处于停止状态,如果需要IIS远程管理服务进入开启状态,需要通过netstart命令启用,这点非常重要: net start wmsvc 现在我们可以通过远程计算机管理...上述安装过程,服务器只支持64位应用程序,我们还存在大量32位应用程序,在Server Core上启用32应用程序支持也很简单,32应用程序支持是通过WOW64,可以通过以下命令进行安装:...支持32位应用程序,需要在IIS应用程序池上启用32应用程序支持。

2.9K60

WCF技术剖析之二:再谈IISASP.NET管道

对于寄宿于IIS 5.x所有Web 应用都运行在同一个进程(工作进程Aspnet_wp.exe)不同AppDomain。...,尽管采用性能最好命名管道,但是仍然会带来性能瓶颈; 所有ASP.NET应用,运行在相同进程(aspnet_wp.exe)不同应用程序域(AppDomain),基于应用程序隔离级别不能从根本上解决一个应用程序对另一个程序影响...HTTP.SYS能够带来如下好处: 持续监听:由于HTTP.SYS是一个网络驱动程序,始终处于运行状态,对于用户HTTP请求,能够及时作出反应; 更好稳定性:HTTP.SYS运行在操作系统内核模式下...IIS 6引入了应用程序概念,一个工作进程对应着一个应用程序池。一个应用程序池可以承载一个或者多个Web应用,每个Web应用映射到一个IIS虚拟目录。...对于后续请求,空闲HttpApplication对象会从池中取出,如果池中所有的HttpApplication对象都处于繁忙状态ASP.NET会创建新HttpApplication对象。

1.5K110

C# .NET面试系列八:ADO.NET、XML、HTTP、AJAX、WebService(二)

2、Session概念: Session 表示用户会话状态。每个用户都有一个独立 Session,用于存储用户特定信息。用途: 用于在用户请求之间保持状态,存储用户登录信息、购物车内容等。...它是一个全能对象,提供了访问 Web 服务器环境所有信息。...3、Connection Lifetime指定连接在连接池中保持活动时间(以秒单位)。在达到此时间后,连接可能会被关闭和重用,以防止由于长时间保持连接而导致资源泄漏。...ViewState 是 ASP.NET Web Forms 一个机制,用于在 Web 页面的请求之间保持页面的状态。...3、长时间运行Windows 服务通常设计长时间运行,它们可以一直保持运行状态直到系统关闭或服务被停止。标准 EXE 程序通常是在用户请求执行某个操作时运行,执行完成后即退出。

13510

关于c# SESSION丢失问题解决办法

提供一个简单、易于使用会话状态模型,您可以使用该模型跨多个 Web 请求存储任意数据和对象。...使用进程内会话状态模式时请考虑下面的限制: 使用进程内会话状态模式时,如果 aspnet_wp.exe 或应用程序重新启动,则会话状态数据将丢失。...这些重新启动通常会在下面的情况中发生: 在应用程序 Web.config 文件 元素,设置一个导致新进程在条件被满足时启动属性,例如 memoryLimit。...如果在应用程序 Web.config 文件 元素启用了网络园模式,请不要使用进程内会话状态模式。否则将发生随机数据丢失。...还有这二种: 一:在第一个页面置了SESSION,然后REDIRECT去第二个页面。解决方法是在REDIRECT设置endResponseFALSE。

1.8K50

ASP.NET保持用户状态九种选择

为了在ASP.NET保持数据,你需要调整从先前ASP处理状态中学习到知识。 随着Web时代到来,在无状态HTTP世界管理状态成为Web开发者一个大问题。...一个用户 到下一次请求(可以跨越多个请求重复使用) 任意大小 QueryString 一个或一组用户 到下一次请求(可以跨越多个请求重复使用) 小、简单数据 Sessions 一个用户 用户活动时一直保持...ASP.NET数据容器对象 Application 让我们通过回答上面的状态问题判定条件来说明该对象。谁需要数据?所有用户需要访问它。需要保持数据多长时间?永久保持,或在应用程序生存期中保持。...在图6一个ASP.NET页面设置了某个用户ID,在这以后它保持一个隐藏窗体字段。后面的向任何页面的请求保留这个值,直到页面使用Submit按钮链接到其它用户。...这些途径给了你如何保持状态信息更好控制。这些技术范围可以窄到只有一个请求那么小(Context对象),也可以宽到整个Web服务器和服务器上所有应用程序(Machine.config文件)。

1.8K20
领券