I've deployed a 'URL rewriter' version of our application almost two
months ago and it is working great (.NET 1.1, Win2k, IIS5). Since then,
I've gotten just FOUR exceptions that look like this:
The description for Event ID ( 0 ) in Source ( Application ) cannot be
found. The local computer may not have the necessary registry
information or message DLL files to display messages from a remote
computer. The following information is part of the event:
Exception: HttpException
MESSAGE: Invalid file name for monitoring: '[...local
path...]\search.aspx?Ma ke=Ford'. File names for monitoring must have
absolute paths, and no wildcards.
SOURCE: System.Web
URL: http://www.[...my server...].com/search.aspx?Mak e=Ford
FORM:
QUERYSTRING:
TARGETSITE: System.String GetFullPath(Sys tem.String)
STACKTRACE: at System.Web.File ChangesMonitor. GetFullPath(Str ing
alias)
at System.Web.File ChangesMonitor. StartMonitoring Path(String alias,
FileChangeEvent Handler callback)
at System.Web.Cach ing.CacheDepend ency.Init(Boole an isPublic, Boolean
isSensitive, String[] filenamesArg, String[] cachekeysArg,
CacheDependency dependency, DateTime utcStart)
at System.Web.Cach ing.CacheDepend ency..ctor(Bool ean isSensitive,
String[] filenames, DateTime utcStart)
at
System.Web.Conf iguration.HttpC onfigurationSys tem.GetCacheDep endencies(Hasht able
cachedeps, DateTime utcStart)
at
System.Web.Conf iguration.HttpC onfigurationSys tem.ComposeConf ig(String
reqPath, IHttpMapPath configmap)
at System.Web.Http Context.GetComp leteConfigRecor d(String reqpath,
IHttpMapPath configmap)
at System.Web.Http Context.GetComp leteConfig()
at System.Web.Http Context.GetConf ig(String name)
at System.Web.Http Request.get_Con tentEncoding()
at System.Web.Http Request.FillInQ ueryStringColle ction()
at System.Web.Http Request.set_Que ryStringText(St ring value)
at System.Web.Http Request.Interna lRewritePath(St ring newFilePath,
String newPathInfo, String newQueryString)
at System.Web.Http Context.Rewrite Path(String filePath, String
pathInfo, String queryString)
at Insignia.Catalo g2.ModuleRewrit er.RewritePath( HttpApplication app,
String path)
at Insignia.Catalo g2.ModuleRewrit er.Rewrite(Stri ng requestedPath,
HttpApplication app)
at
Insignia.Catalo g2.BaseModuleRe writer.BaseModu leRewriter_Begi nRequest(Object
sender, EventArgs e)
at
System.Web.Sync EventExecutionS tep.System.Web. HttpApplication +IExecutionStep .Execute()
at System.Web.Http Application.Exe cuteStep(IExecu tionStep step,
Boolean& completedSynchr onously)
HttpException: Code=500 HResult=-2147024809.
The IIS log entry is:
2006-02-18 14:53:09 217.169.46.98 - 192.168.20.248 80 GET
/ADW1/search.aspx?Mak e=Ford - 500 0 Mozilla/4.0+(compatible ;) -
(I replaced real paths and URL's with [...])
Notice in the exception log entry that QUERYSTRING is empty - somehow
the QUERYSTRING isn't being detected and/or split from the URL.
Apparently the first arg to HttpContext.Rew ritePath() doesn't like the
query string. I can hit the same page myself and never get the 500
error. This site gets hundreds of thousands of hits each day. What
would make this request generate this error?
Thanks!
-Brian