当新的 DLL 复制到 BIN 目录时,ASP.net C# 需要重新启动 IIS

2023-11-27

我们遇到一个问题,每次我们将 dll 复制到 bin 目录时,我们网站上的主域就会停止运行,恢复它的唯一方法是重新启动“WWW Publishing Service”。

我们运行一个网站,其中包含许多在单个服务器上运行的 IIS 应用程序,其中每个应用程序都配置为在不同的应用程序池上运行。

我们拥有庞大的代码库,其中包含整个网站 280 多个 aspx 页面。我们的主域包含大约 100 个 aspx 页面,而子域每个包含 15 或 20 个页面。

当我们进行构建时,我们当前正在生成一堆 dll,我们手动将其复制到生产服务器的 bin 目录中。一旦我们这样做,IIS 显然就会开始回收编译每个 aspx 页面和隐藏代码。此时,该网站基本上会停止运行(有时需要重新启动 - 通过重新启动网络发布服务 - 才能再次唤醒它)。

奇怪的是,只有当我们部署到主域 IIS 应用程序(即 www.如果我们以同样的方式部署一个bin文件到子域,它几乎立即可以工作。

即使我执行 iisreset.exe,这似乎也无法解决问题。

几个问题:

  1. 有没有办法加快当前进程,这样我们就不必重新启动服务器?
  2. 是否有任何明显的代码更改或更新会导致需要重新启动服务(有时我们运行 iisreset,但这似乎并没有使其恢复生机)?

一些规格:

  • 代码写在:C#
  • .net框架:2.0
  • 服务器 :Windows 网络服务器 2008
  • iis版本:IIS7
  • 数据库 :MSSQL 2008 标准

任何援助将不胜感激。提前致谢。


当你放一个app_offline.htm如果您的主域的 wwwroot 中存在一个文件,IIS 站点就会脱机。正如 Scott Gu 所描述的,这是 IIS 的默认行为。当您执行此操作时,所有 dll 都可以被安全地覆盖。当你删除app_offline.htm文件您的应用程序将在下次请求到来时启动。

阅读更多关于app_offline.htm here and here.

基本上,如果您将具有此名称的文件放在 Web 应用程序目录的根目录中,ASP.NET 2.0 将关闭该应用程序,从服务器卸载应用程序域,并停止处理该应用程序的任何新传入请求。然后,ASP.NET 还将通过发回 app_offline.htm 文件的内容来响应应用程序中对动态页面的所有请求(例如:您可能希望收到“站点正在建设中”或“停机维护”消息) 。

这提供了一种方便的方法来在您进行重大更改或复制大量新页面功能时关闭您的应用程序(并且您希望避免人们在内容更新过程中点击并激活您的网站的烦人问题)。它还可以是立即解锁和卸载 .mdf 或 .mdb 数据文件位于 /app_data 目录中的 SQL Express 或 Access 数据库的有用方法。

删除 app_offline.htm 文件后,对应用程序的下一个请求将导致 ASP.NET 再次加载应用程序和应用程序域,并且生活将照常继续。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当新的 DLL 复制到 BIN 目录时,ASP.net C# 需要重新启动 IIS 的相关文章

  • Directory.Delete 之后 Directory.Exists 有时返回 true ?

    我有非常奇怪的行为 我有 Directory Delete tempFolder true if Directory Exists tempFolder 有时 Directory Exists 返回 true 为什么 可能是资源管理器打开了
  • 如何将 protobuf-net 与不可变值类型一起使用?

    假设我有一个像这样的不可变值类型 Serializable DataContract public struct MyValueType ISerializable private readonly int x private readon
  • 确保 StreamReader 不会挂起等待数据

    下面的代码读取从 tcp 客户端流读取的所有内容 并且在下一次迭代中它将仅位于 Read 上 我假设正在等待数据 我如何确保它不会在没有任何内容可供读取时返回 我是否必须设置低超时 并在失败时响应异常 或者有更好的办法吗 TcpClient
  • ClickOnce 应用程序错误:部署和应用程序没有匹配的安全区域

    我在 IE 中使用 FireFox 和 Chrome 的 ClickOnce 应用程序时遇到问题 它工作正常 异常的详细信息是 PLATFORM VERSION INFO Windows 6 1 7600 0 Win32NT Common
  • C中的malloc内存分配方案

    我在 C 中尝试使用 malloc 发现 malloc 在分配了一些内存后浪费了一些空间 下面是我用来测试 malloc 的一段代码 include
  • 为什么极端下派生类(多重虚拟继承)的大小包括超类成员大小的两倍?

    include
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • java.io.Serialized 在 C/C++ 中的等价物是什么?

    C C 的等价物是什么java io Serialized https docs oracle com javase 7 docs api java io Serializable html 有对序列化库的引用 用 C 序列化数据结构 ht
  • 如何使用 LINQ2SQL 连接两个不同上下文的表?

    我的应用程序中有 2 个数据上下文 不同的数据库 并且需要能够通过上下文 B 中的表的右连接来查询上下文 A 中的表 我该如何在 LINQ2SQL 中执行此操作 Why 我们正在使用 SaaS 产品来跟踪我们的时间 项目等 并希望向该产品发
  • 如何检测表单的任何控件的变化?

    如何检测 C 中表单的任何控件的更改 由于我在一个表单上有许多控件 并且如果表单中的任何控件值发生更改 我需要禁用按钮 我正在寻找一些内置函数 事件处理程序 属性 并且不想为此创建自定义函数 不 我不知道任何时候都会触发任何事件any控制表
  • 如何在 32 位或 64 位配置中以编程方式运行任何 CPU .NET 可执行文件?

    我有一个可在 32 位和 64 位处理器上运行的 C 应用程序 我试图枚举给定系统上所有进程的模块 当尝试从 64 位应用程序枚举 32 位进程模块时 这会出现问题 Windows 或 NET 禁止它 我认为如果我可以从应用程序内部重新启动
  • 使用自定义堆的类似 malloc 的函数

    如果我希望使用自定义预分配堆构造类似 malloc 的功能 那么 C 中最好的方法是什么 我的具体问题是 我有一个可映射 类似内存 的设备 已将其放入我的地址空间中 但我需要获得一种更灵活的方式来使用该内存来存储将随着时间的推移分配和释放的
  • C#:帮助理解 UML 类图中的 <>

    我目前正在做一个项目 我们必须从 UML 图编写代码 我了解 UML 类图的剖析 但我无法理解什么 lt
  • 如何禁用 fread() 中的缓冲?

    我正在使用 fread 和 fwrite 读取和写入套接字 我相信这些函数用于缓冲输入和输出 有什么方法可以在仍然使用这些功能的同时禁用缓冲吗 Edit 我正在构建一个远程桌面应用程序 远程客户端似乎 落后于服务器 我不知道可能是什么原因
  • “接口”类似于 boost::bind 的语义

    我希望能够将 Java 的接口语义与 C 结合起来 起初 我用过boost signal为给定事件回调显式注册的成员函数 这非常有效 但后来我发现一些函数回调池是相关的 因此将它们抽象出来并立即注册所有实例的相关回调是有意义的 但我了解到的
  • 使用管道时,如果子进程数量大于处理器数量,进程是否会被阻塞?

    当子进程数量很大时 我的程序停止运行 我不知道问题是什么 但我猜子进程在运行时以某种方式被阻止 下面是该程序的主要工作流程 void function int process num int i initial variables for
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成
  • C++ 函数重载类似转换

    我收到一个错误 指出两个重载具有相似的转换 我尝试了太多的事情 但没有任何帮助 这是那段代码 CString GetInput int numberOfInput BOOL clearBuffer FALSE UINT timeout IN
  • 使用 .NET Process.Start 运行时挂起进程 - 出了什么问题?

    我在 svn exe 周围编写了一个快速而肮脏的包装器来检索一些内容并对其执行某些操作 但对于某些输入 它偶尔会重复挂起并且无法完成 例如 一个调用是 svn list svn list http myserver 84 svn Docum
  • 如何从 ODBC 连接获取可用表的列表?

    在 Excel 中 我可以转到 数据 gt 导入外部数据 gt 导入数据 然后选择要使用的数据源 然后在提供登录信息后 它会给我一个表格列表 我想知道如何使用 C 以编程方式获取该列表 您正在查询什么类型的数据源 SQL 服务器 使用权 看

随机推荐

  • 将 24 小时制时间转换为 Joda-Time 中的 am/pm

    我刚刚开始工作乔达时间 并让它正确显示我的日期24小时制 军事时间 但我宁愿是上午 下午 查了一下 里面提到了一天中的某个时刻我认为这是 HH 值 所以我尝试编写一个循环将其分解为 AM Pm 但它从未成功 DateTime dtf new
  • 如何在 Cython 中将 C 指针和长度包装在新型缓冲区对象中?

    我正在 Cython 中编写 Python 2 7 扩展模块 如何创建一个实现新型缓冲区接口的 Python 对象 该对象包装由 C 库提供给我的一块内存 内存块只是一串字节 而不是结构或多维数组 我得到了一个const void 指针和长
  • 我可以使用 bootstrap 来设计 HTML 电子邮件模板吗

    我需要设计一个HTML 电子邮件模板通过电子邮件发送给我的客户 我知道对于设计一个 html 电子邮件模板 不应有 css 文件linked 所有样式都应该内联到 html 中 所有图像应该是引用的通过在线服务器 url 不应存储在本地 我
  • 如何按空格分割字符串但在引号内转义空格(在java中)? [复制]

    这个问题在这里已经有答案了 我有一个像这样的字符串 Video or movie parent Media or entertainment 1 1 1 0 0 我想用空格分割它 但引号内的空格应该被忽略 所以分割后的字符串应该是 Vide
  • 使用 CLLocation 计算两个坐标之间的距离

    我在用着CLLocationDistance获取两点之间的距离 但在传递当前位置时出现错误 CLLocation current CLLocation alloc initWithLatitude startLocation coordin
  • uniswap 程序集 create2 功能如何工作?

    我正在查看 uniswap 代码 试图理解代码 其中大部分内容都非常清楚 但我确实有一些问题 在这个函数中 function createPair address tokenA address tokenB external returns
  • 在值构造函数中指定类约束

    有没有办法为值构造函数的参数定义类约束 像这样的东西 data Point2D Num a gt Point a a 那么 Point 可以接受任何参数 只要它们属于 Num 类 您可以使用ExistentialQuantification
  • 删除列表中元组的第一个元素

    我有一个元组列表 如下所示 values 1 hi you 2 bye bye 然而 每个元组的第一个元素不是必需的 期望的输出是 hi you bye bye 我已经做了足够的研究 知道我无法操作元组 但我似乎无法找到如何成功删除列表中每
  • 我如何“取消设置”已声明的类

    我有一个完整的表单创建系统 有许多不同的问题类型 我必须检查该人所做的答案是否正确 所有类型的问题都有自己的类 始终称为 ItemClass 并且该类位于其自己的文件中 每次提出问题时 我都会包含该文件 但存在问题 我必须在一个 PHP 文
  • 如何在字符串的特定位置添加字符?

    我正在使用 Notepad 想要使用正则表达式替换在字符串中的特定位置插入字符 比如说 在每行的位置 6 处插入一个逗号 表达式会是什么 如果您想在第六个字符之后添加一个字符 只需使用搜索 6 和替换 1 示例插入一个 从技术上讲 这会将每
  • Java 调试器无法调用某些默认方法实现

    我正在 IntelliJ IDEA 中编码 调试我的应用程序时 我无法使用某些默认方法实现Watches 这是一个浓缩示例 public class Friendship interface Friend default void sayH
  • 如何在 iOS 7 上让 NSTimer 在后台保持活动状态?

    我创建了在后台运行 NSTimer 的应用程序 我使用位置管理器在后台运行 NSTimer 我使用下面的链接在后台运行 NSTimer 如何在 iOS 应用程序中每 n 分钟更新一次后台位置 这种方法在 iOS 6 中工作正常 但在 iOS
  • Activity崩溃生命周期方法-android

    我正在开发一个应用程序 在崩溃的情况下 需要保存崩溃时的一些数据 现在 我将数据保存在 onDestroy 中 如下所示 Override protected void onDestroy saveState super onDestroy
  • Windows Phone 7 中的推送通知问题

    我尝试了以下教程来在 Windows Phone 7 中创建推送通知 http www sgtconker com 2010 03 article windows phone 7 push notifications http www si
  • 如何使用 Inkscape 将 SVG 字符串转换为 jpg

    在花了两天时间尝试使用 ImageMagick 从 SVG 字符串光栅化 jpeg 后 我终于放弃了 虽然我设法使实际转换工作正常 但在渲染图像时 Imagemagick 似乎无法正确转换变换 旋转功能 导致输出与原始 SVG 不同 经过进
  • 将字符串转换为日期时间对象

    我想将此字符串转换为日期时间对象 Wed Oct 20 16 35 44 0000 2010 有没有一种简单的方法可以做到这一点 或者我是否必须编写一个 RE 来解析元素 将 Oct 转换为 10 等等 编辑 strptime 很棒 然而
  • 获取和设置屏幕分辨率

    如何使用 Visual C 收集和更改屏幕分辨率 For 检索屏幕分辨率 您将需要使用System Windows Forms Screen班级 这Screen AllScreens属性可用于访问系统上所有显示的集合 或者您可以使用Scre
  • 获取按下的按键的键值

    我不知道如何获取按下的键的值 我目前有 info price bind keydown function evt alert evt keyCode 但当我按 1 而不是返回 1 时 它返回 49 编辑 我知道键 1 的 Ascii 代码
  • 如何在 Xcode 或 iTunes connect 上获取 Testflight 外部测试器的崩溃日志?

    有什么方法可以知道某人的应用程序出了什么问题 除了这个人之外 其他人的设备都可以使用 该人尝试删除以前的版本并安装新版本 但仍然不起作用 我怀疑我放置在文档文件夹中的文件之一可能仍然存在 但此文件的格式已更改 苹果有一个关于这个名字的技术说
  • 当新的 DLL 复制到 BIN 目录时,ASP.net C# 需要重新启动 IIS

    我们遇到一个问题 每次我们将 dll 复制到 bin 目录时 我们网站上的主域就会停止运行 恢复它的唯一方法是重新启动 WWW Publishing Service 我们运行一个网站 其中包含许多在单个服务器上运行的 IIS 应用程序 其中