UWInfo Blog
發表新文章
[Join] | [忘記密碼] | [Login]
搜尋

搜尋意見
文章分類-#Author#
[所有文章分類]
所有文章分類
  • ASP.NET (48)
  • ASP.NET2.0 (15)
  • ASP.NET4.0 (34)
  • JavaScript (49)
  • jQuery (26)
  • FireFox (4)
  • UW系統設定 (3)
  • SQL (39)
  • SQL 2008 (25)
  • mirror (4)
  • SVN (4)
  • IE (9)
  • IIS (21)
  • IIS6 (1)
  • 閒聊 (7)
  • W3C (6)
  • 作業系統 (9)
  • C# (24)
  • CSS (12)
  • FileServer (1)
  • HTML 5 (11)
  • CKEditor (3)
  • UW.dll (13)
  • Visual Studio (16)
  • Browser (8)
  • SEO (1)
  • Google Apps (3)
  • 網站輔助系統 (4)
  • DNS (5)
  • SMTP (4)
  • 網管 (11)
  • 社群API (3)
  • SSL (4)
  • App_Inventor (1)
  • URLRewrite (2)
  • 開發工具 (6)
  • JSON (1)
  • Excel2007 (1)
  • 試題 (3)
  • LINQ (1)
  • bootstrap (0)
  • Vue (3)
  • IIS7 (3)
  • foodpanda (2)
  • 編碼 (2)
  • 資安 (3)
  • Sourcetree (1)
  • MAUI (1)
  • CMD (1)
  • my sql (1)
  • API串接 (1)
最新回應
  • Newtonsoft.Json.JsonConvert.DeserializeObject 失敗的情況
    test...more
  • dotnet ef dbcontext scaffold
    ...more
  • [ASP.NET] 利用 aspnet_regiis 加密 web.config
    ...more
  • IIS ARR (reverse proxy) 服務安裝
    ...more
  • [錯誤訊息] 請加入 ScriptResourceMapping 命名的 jquery (區分大小寫)
    ...more
  • 用 Javascript 跨網頁讀取 cookie (Cookie cross page, path of cookie)
    ...more
  • 線上客服 - MSN
    本人信箱被盜用以致資料外洩,是否可以請貴平台予以協助刪除該信箱之使用謝謝囉...more
  • 插入文字到游標或選取處
    aaaaa...more
  • IIS 配合 AD (Active Directory) 認証, 使用 .Net 6.0
    太感謝你了~~~你救了我被windows 認證卡了好幾天QQ...more
  • PostgreSQL 的 monitor trigger
    FOR EACH ROW 可能要改為 FOR EACH STATEMENT ...more
標籤
  • 0
  • utf8
  • s3
  • lock
  • ?
  • 10
  • sonar
  • Chrome
  • ARR
  • 20
  • line
  • 3013
  • sp_
  • sing
  • AD
  • [u2]
  • 560
  • [t]
  • 976
  • 790
  • C
  • 864
  • 22
  • DNS
  • 736
  • 72
  • SES
  • query
  • xml order
  • 148
  • 34
  • user
  • for
  • 5Lypiz1J
  • MaxWorkIte
  • darren
  • 60.5CtEp
  • Contains
  • 88
  • 126
  • 專案 UNION A
  • console
  • date
  • 死
  • IP
  • 978
  • Content-Di
  • UNT
  • 840
  • remote
搜尋 pool 結果:
IIS的29小時重啟機制
其實這是老問題了,就是IIS每過29小時會重啟 App Pool 機制
這個機制目的是讓主機可以回收記憶體以增進網站效能,過程是smooth的
當此回收機制開始時,新的request會由新的程序跑,舊的request仍會把他跑完(理論上,但太久的程式還是會自動停)

這樣的機制,最明顯的是會造成 inProc 的 session or cache 資料消失
造成程式上的錯誤,或是user的資料消失
另外,這個29小時回收機制,不會因為程式更新,網站重啟,而重新計算

原本以為這機制影響不大,但最近因為電商後台程式有個排程跑太久剛好被回收機制中斷
然後自己假日在外無法即時處理問題,造成電商客戶在等著把問題解決
想說還是把這個 29小時魔咒 處理一下
在某個特定無排程時間,執行重啟網站
 
More...
darren, 2025/9/1 上午 10:30:33
限制 IIS Process 的 CPU 使用量
常常會有網站不小心吃了 100 % 的 CPU.

在 appliction pool 的進階設定裡面,可以限定 CPU 使用量哦。

記得設定完 CPU 上限後,要再設定"限制動作"。

KillW3wp: 讓 process 重新啟動,這個有點爆力..
Throttle: 任何時間 CPU 使用量都不要超過限制。
ThrottleUnderLoad: 當系統的 Loading 較高時再限制 CPU 的使用量。



 
More...
Bike, 2022/3/21 下午 03:18:12
分享印表機在windows更新後無法列印處理 Error 0x0000011b
今天協助小三敦化門市印表機問題,有一台分享印表機無法列印
處理方式要在分享印表機的主機上設定 registry + 服務的 printer spooler 重啟
請參考 https://www.youtube.com/watch?v=XouW14RUJxs
 
More...
darren, 2021/12/22 下午 05:31:42
小心設定連線字串中的Connect Timeout
今天網站升到 .Net Framework 4.0 時,突然有幾個頁面一執行就會load不停,並且造成 w3wp.exe 的CPU飆高。

經查詢之後發現,問題發生在執行SQL時;會load不停的頁面所呼叫的連線字串中,都將屬性Connection Timeout=0

,因此將Connection Timeout=0拿掉就好了。

<add key="xxxxxx" value="server={server};database={DB};uid={uid};pwd={pwd};Max Pool Size={size};Connection Timeout=0"/>

http://msdn.microsoft.com/zh-cn/library/system.data.oracleclient.oracleconnection.connectiontimeout(v=vs.110).aspx

所以在設定連線字串時,應避免將Connection Timeout設成0,否則會無限期的等待連接。


p.s. 很神奇的事是,在 .Net Framework 2.0 是正常的,但升成 4.0 後才會load不停,不知道為什麼。
More...
candice, 2014/11/5 下午 06:56:48
FortiGate 指定對外的 IP
Fortigate 要指定對外的 IP,可以在 "規則 > 防火牆策略 > 防火牆策略" 之下設定,可能必需配合路由的 "政策路由",有空再來試試。

1. 先建立位址:
 
2. 建立 IP Pool:
 
3. 建立策略:
 
More...
Bike, 2013/11/25 下午 02:21:10
建立sp_who3(Connection pool 執行的 SQL 指令)
USE [master]
GO
/****** Object: StoredProcedure [dbo].[sp_who3]    Script Date: 06/26/2008 09:40:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_who3]    
(    
@filter tinyint = 1,    
@filterspid int = NULL    
)    
AS    
SET NOCOUNT ON;    
    
DECLARE @processes TABLE    
(    
spid int,    
blocked int,    
databasename varchar(256),    
hostname varchar(256),    
program_name varchar(256),    
loginame varchar(256),    
status varchar(60),    
cmd varchar(128),    
cpu int,    
physical_io int,    
[memusage] int,    
login_time datetime,    
last_batch datetime,    
current_statement_parent xml,
current_statement_sub xml)

INSERT INTO @processes    
SELECT sub.*
FROM
(
SELECT sp.spid,    
sp.blocked,    
sd.name,    
RTRIM(sp.hostname) AS hostname,
RTRIM(sp.[program_name]) AS [program_name],    
RTRIM(sp.loginame) AS loginame,    
RTRIM(sp.status) AS status,    
sp.cmd,    
sp.cpu,    
sp.physical_io,    
sp.memusage,    
sp.login_time,    
sp.last_batch,
(
    SELECT
LTRIM(st.text) AS [text()]
    FOR XML PATH(''), TYPE
) AS parent_text,
(
    SELECT
LTRIM(CASE
WHEN LEN(COALESCE(st.text, '')) = 0 THEN NULL
ELSE SUBSTRING(st.text, (er.statement_start_offset/2)+1,
((CASE er.statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE er.statement_end_offset
END - er.statement_start_offset)/2) + 1)
END) AS [text()]
FROM sys.dm_exec_requests er CROSS APPLY sys.dm_exec_sql_text(er.sql_handle) AS st
WHERE er.session_id = sp.spid
    FOR XML PATH(''), TYPE
) AS child_text
FROM sys.sysprocesses sp WITH (NOLOCK) LEFT JOIN sys.sysdatabases sd WITH (NOLOCK) ON sp.dbid = sd.dbid
CROSS APPLY sys.dm_exec_sql_text(sp.sql_handle) AS st
) sub INNER JOIN sys.sysprocesses sp2 ON sub.spid = sp2.spid
ORDER BY
sub.spid

-- if specific spid required    
IF @filterspid IS NOT NULL    
DELETE @processes    
WHERE spid <> @filterspid    
    
-- remove system processes    
IF @filter = 1 OR @filter = 2    
DELETE @processes    
WHERE spid < 51
OR spid = @@SPID
    
-- remove inactive processes    
IF @filter = 2    
DELETE @processes    
WHERE status = 'sleeping'    
AND cmd IN ('AWAITING COMMAND')    
AND blocked = 0    

SELECT spid,    
blocked,    
databasename,    
hostname,    
loginame,    
status,    
current_statement_parent,
current_statement_sub,
cmd,    
cpu,    
physical_io,    
program_name,    
login_time,    
last_batch    
FROM @processes    
ORDER BY spid

RETURN 0;


查詢過濾sp_who3

DECLARE @Table TABLE(
        spid int,    
        blocked int,    
        databasename varchar(256),    
        hostname varchar(256),    
        loginame varchar(256),    
        status varchar(60),    
        current_statement_parent xml,
        current_statement_sub xml,
        cmd varchar(128),    
        cpu int,    
        physical_io int,    
        program_name varchar(256),    
        login_time datetime,    
        last_batch datetime
)

INSERT INTO @Table EXEC sp_who3

SELECT *
FROM    @Table
WHERE databasename= 'Leon' and cmd = 'AWAITING COMMAND'
and CAST(current_statement_parent AS nvarchar(max)) not LIKE '%AspNet_SqlCachePollingStoredProcedure%'
order by CAST(current_statement_parent AS nvarchar(max))
More...
Reiko, 2013/5/3 上午 10:48:08
MailMessage, SmtpClient 要 Dispose

今天發現當 System.Net.Mail.MailMessage  有附件時,SendMail 後附檔會被Lock住
原來使用完之後要釋放資源,不然要等一段時間才會被系統釋放

另外 .Net 4.0 的 SmtpClient 物件也要 Dispose()
他的做法也類似 SqlCoonection 有 pooling 的機制
因此用完也必須要 Dispose()

UW.Mail 我有調整過了 要SVN更新一下 再build

More...
darren, 2013/1/27 上午 03:11:35
IIS7 的設定匯出及匯入 -- 使用 APPCMD
使用 APPCMD

所在位置: cd %windir%\system32\inetsrv

匯出整個網站設定: appcmd list site "SiteName" /config /xml > D:\IISSetting\SiteName.xml

匯入整個網站設定: appcmd.exe add site /in < D:\IISSetting\SiteName.xml

在執行匯入的動作之前,要先檢查一下 .XML 裡面的 ID, 是否和現有的網站衝突,一般會有兩個地方。 

有時在 XML 裡面會多一個 ftpServer 的區塊,要記得刪掉,另外 Application Pool 要記得,建立可以使用以下指令。

export
appcmd list apppool 116foto /config /xml >D:\IISSetting\app_116foto.xml
import
appcmd add apppool /name:116foto /in <D:\IISSetting\app_116foto.xml
More...
Bike, 2012/8/8 下午 11:32:33
網站在大流量時卡住 -- maxConcurrentRequestsPerCPU 和 requestQueueLimit
突然發現網站在大流量卡住時,看 CPU 和記憶體都沒有什麼問題時,可能是以下的原因。

在 C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Aspnet.config 之下, 可以設定

<
system.web>
   <applicationPool maxConcurrentRequestsPerCPU="12" maxConcurrentThreadsPerCPU="0" requestQueueLimit="5000"/>
</system.web>

另外,在 registry 中,可以設定 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\2.0.50727.0\MaxConcurrentRequestsPerCPU


參考:
http://blogs.msdn.com/b/tmarq/archive/2007/07/21/asp-net-thread-usage-on-iis-7-0-and-6-0.aspx
More...
Bike, 2012/7/30 上午 09:04:47
IIS7網站備份&還原(只能從IIS7備份還原到IIS7)

cmd
cd C:\Windows\System32\inetsrv

※備份 backup.bat
*備份應用程式集區
appcmd list apppool HCI /config /xml >D:\IISSetting\appHCI.xml
*備份Site
appcmd list site HCI /config /xml >D:\IISSetting\HCI.xml

※還原 restore.bat
*備份應用程式集區
appcmd add apppool /name:HCI /in <D:\IISSetting\appHCI.xml
*備份site
appcmd add site /name:HCI /in <D:\IISSetting\HCI.xml

註1.HCI=>site name
註2.打開site的xml, 調整Id的值(不可與還原主機的IIS上已有ID重複)

More...
Reiko, 2012/4/12 下午 12:14:58
~ Uwinfo ~