对 app_offline.htm 的几点错误认识

本文解析了ASP.NET中app_offline.htm文件的作用及其使用细节,包括文件放置位置、大小写敏感性、扩展名要求等,并澄清了一些常见误解。

app_offline.htm 是 ASP.NET 中一个有用的文件,当我们对服务器进行维护,需要暂时关闭网站时,可以做一个网页,提示服务器正在维护,然后将该文件命名为 app_offline.htm,然后放到网站根目录下,当访问这个 ASP.NET 网站时,就会返回 app_offline.htm 的内容。

app_offline.htm,网上有一些错误的认识:

app_offline.htm 文件内容至少有 512 字节才起作用?

我不知 .NET Framework 1.0 是怎样的,但至少 2.0 及以后并不要求 app_offline.htm 文件内容至少是 512 字节,而 2.0 及以后版本是最常见的,所以可以理解为 app_offline.htm 文件内容大小并没有要求。

大小写敏感还是不敏感?

大小写是不敏感的,但有人说“虽然大小写不敏感,但不能是‘App_offline’”,其实不对,每个字母都是大小写不敏感的。

扩展名?

有人说扩展名可以是“.htm”或“.html”,不对,只能是“.htm”。

app_offline.htm 只有在网站根目录下才起作用?

其实微软说的是 app_offline.htm 放在应用程序根目录下才起作用,也就是说放在网站根目录会起作用,放在虚拟目录下也会起作用。说明:网站与虚拟目录之间、虚拟目录与虚拟目录之间的 app_offline.htm 互不影响。

app_offline.htm 影响网站的所有文件?

其实只影响 ASP.NET 的文件,也就是说:如果一个网站,虽然支持 ASP.NET,但全部是 .htm 文件,当访问这些 .htm 文件时,并不受 app_offline.htm 的影响;再举例说一个网站,既有 ASP.NET 文件,也有 .htm 文件,只有其中的 ASP.NET 文件会受 app_offline.htm 的影响。

转载于:https://www.cnblogs.com/hsapphire/archive/2010/03/08/1680545.html

import requests from bs4 import BeautifulSoup import smtplib from email.mime.text import MIMEText import time import random import logging from datetime import datetime # 配置日志 logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s', handlers=[logging.FileHandler('monitor.log'), logging.StreamHandler()] ) # 邮件配置 (请替换为您的实际信息) SMTP_SERVER = 'smtp.qq.com' SMTP_PORT = 587 SMTP_USER = '653109960@qq.com' SMTP_PASSWORD = 'lfnnoqqokcozbfha' TO_EMAIL = '653109960@qq.com' # 商品链接列表 (添加您要监控的商品) PRODUCT_URLS = [ 'https://2.taobao.com/item.htm?id=123456789', 'https://2.taobao.com/item.htm?id=987654321', 'https://2.taobao.com/item.htm?id=567891234' ] # 存储商品状态历史 product_status = {url: None for url in PRODUCT_URLS} def send_email(subject, body): """发送邮件通知""" try: msg = MIMEText(body, 'plain', 'utf-8') msg['Subject'] = subject msg['From'] = SMTP_USER msg['To'] = TO_EMAIL with smtplib.SMTP(SMTP_SERVER, SMTP_PORT) as server: server.starttls() server.login(SMTP_USER, SMTP_PASSWORD) server.send_message(msg) logging.info(f"邮件发送成功: {subject}") return True except Exception as e: logging.error(f"邮件发送失败: {str(e)}") return False def get_product_status(url): """获取商品状态""" try: headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36', 'Accept-Language': 'zh-CN,zh;q=0.9' } response = requests.get(url, headers=headers, timeout=10) response.raise_for_status() soup = BeautifulSoup(response.text, 'html.parser') # 解析商品状态 - 根据咸鱼实际页面结构调整 # 示例1: 检查商品是否下架 offline_element = soup.find('div', class_='offline') if offline_element and '已下架' in offline_element.text: return '已下架' # 示例2: 检查商品是否售出 sold_element = soup.find('div', class_='sold-out') if sold_element and '已售出' in sold_element.text: return '已售出' # 示例3: 检查价格区域是否存在 price_element = soup.find('span', class_='price') if not price_element: return '状态异常' return '在售中' except requests.exceptions.RequestException as e: logging.error(f"请求错误 {url}: {str(e)}") return '请求失败' except Exception as e: logging.error(f"解析错误 {url}: {str(e)}") return '解析失败' def monitor_products(): """监控多个商品状态""" while True: for url in PRODUCT_URLS: try: current_status = get_product_status(url) previous_status = product_status[url] # 记录状态变化 if current_status != previous_status: timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") logging.info(f"状态变化: {url} | 旧状态: {previous_status} | 新状态: {current_status}") # 发送通知 if current_status in ['已下架', '已售出', '状态异常']: subject = f"咸鱼商品状态变化: {current_status}" body = f"商品链接: {url}\n状态: {current_status}\n时间: {timestamp}" send_email(subject, body) # 更新状态 product_status[url] = current_status except Exception as e: logging.error(f"监控错误 {url}: {str(e)}") # 随机延迟 (0.5-5秒) delay = random.uniform(0.5, 5) logging.info(f"等待 {delay:.2f} 秒后继续监控...") time.sleep(delay) if __name__ == "__main__": logging.info("咸鱼商品监控脚本启动") try: monitor_products() except KeyboardInterrupt: logging.info("监控脚本已手动停止") except Exception as e: logging.error(f"脚本异常终止: {str(e)}") 以上代码启动后只是闪一下运行框,请帮我完善一下
最新发布
08-23
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值