Free Windows compilers
quote Visual Web Developer 2005 Express Edition Visual Basic 2005 Express Edition Visual C# 2005 Express Edition Visual C++ 2005 Express Edition Visual J# 2005 Express Edition SQL Server 2005 Express Edition Price: Visual Studio Express Editions - Free for 1 year Operating System Windows 2000 Service Pack 4 Windows XP Service Pack 2 Windows Server 2003 Service Pack 1 Windows x64 editions Windows Vista /quote Visual Studio Express http://msdn.microsoft.com/vstudio/express/ Jeff
Free Windows compilers
quote Visual Web Developer 2005 Express Edition Visual Basic 2005 Express Edition Visual C# 2005 Express Edition Visual C++ 2005 Express Edition Visual J# 2005 Express Edition SQL Server 2005 Express Edition Price: Visual Studio Express Editions - Free for 1 year Operating System Windows 2000 Service Pack 4 Windows XP Service Pack 2 Windows Server 2003 Service Pack 1 Windows x64 editions Windows Vista /quote Visual Studio Express http://msdn.microsoft.com/vstudio/express/ Jeff
Re: mpm_winnt incompatible and broken behavior on restart
Ivan Zhakov wrote: We have Apache/Subversion server under Windows Server 2003. From Bill Stoddard I think the few Win32 developers here (myself included) always had this on their list of 'todo's'. The Windows MPM needs to be enhanced to reliably support multiple child processes and when that's done, this will be fixed 'for free'. Perhaps 'for free' see how IIS7 handles this or perhaps just host the whole web server or just parts of IIS7 within Apache or within any other (perhaps Subversion) Windows Vista process? IIS 7.0 Beta: IIS Hostable Web Core Reference http://msdn.microsoft.com/library/en-us/IIS_70_WebExtSDK/html/d9d5406e-edef-ab14-c78a-711f70d5cda2.asp IIS 7.0 Beta: Internet Information Services (IIS) 7.0 SDK http://msdn.microsoft.com/library/en-us/IIS_70_WebExtSDK/html/6c07a4d0-1bf0-45d3-8178-25df76e6740c.asp IIS 7.0 Beta: IIS 7.0 Operations Guide (IIS 7.0 Beta 1) http://www.microsoft.com/technet/prodtechnol/windowsserver2003/library/iis7/Ops/9a90c800-3f09-4a3f-87b0-caae34076aca.mspx Jeff
Re: Pondering strings in Apache 3.x
From: William A. Rowe, Jr. What else interests us within an 'ap_string_t' header, that would help eliminate bugs within httpd? A random trailing short following the string, in a 'string debug' mode, to detect buffer overflows? Something similar to detect underflows? Open to all ideas. What are the newer C / C++ compiler standard Safer C Library Functions? Jeff
Re: mod_mbox: js speed and mbox size
From: Bill Stoddard Maxime Petazzoni wrote: As I already said, the AJAX browser in mod_mbox relies on a hidden XmlHttpRequest and on Javascript processing of the replied XML document to generate the message list. Snip Of course, the paging system would solve this problem, too. In addition to this, my Javascript code may not be the most optimized we could find. - Concerning compatibility problems, the whole thing does not work nor with IE, neither with Opera, although both of these browsers does not comply against any javascript error. Any JS compatibility expert in the house ? Heh, you wish :0 This is a cool project, glad it's on the httpd dev list. Bill Hasn't someone been suggesting, for years now, to deaf ears at ASF, for ASF to use the very helpful Windows Scripting (even XmlHttp)? Now ASF's developers and open source developers have discovered XmlHttp! Atlas = Ajax = asp.net 2.0 script callbacks and more http://blogs.msdn.com/nickmalik/archive/2005/07/08/436823.aspx Perhaps (once again): Learn to Script http://www.microsoft.com/technet/scriptcenter/learnit.mspx Jeff
Re: Reward SSL and IE
From: Akins, Brian definitively help use with a mod_ssl (Apache 2.0.54) and IE issue. As posted all the time on the Apache users list: MSN Search http://search.msn.com/results.aspx?q=fiddler+http http://search.msn.com/results.aspx?q=%27IEBlog+A+HTTP+Detective+Story%27 What is Fiddler? http://weblogs.asp.net/ssadasivuni/archive/2005/06/08/410834.aspx Is one's latest web server compiled with the Microsoft designed (for any OS) Safer CRT libraries? Jeff
Re: DO NOT REPLY [Bug 33944] - 'X-AspNet-Version' Header Should Be Sent for Compatibility With Visual Studio
--- Additional Comments From [EMAIL PROTECTED] 2005-04-08 19:20 --- (In reply to comment #4) It appears that you are right - that the ASP.NET module with .NET 1.1 does set 'X-AspNet-Version'. I suspect from my early tests that .NET 1.0 did not. We can still handle this, but should ensure that X-AspNet-Version specifically does not merge headers, but instead overwrites the value. Some, like Cookie, must merge. Many other headers should not. What I can't understand is what is responsible for sending the header. With NO modifications to the httpd.conf or to the asp.net module itself the 'X-AspNet-Version' header is being sent under Apache on my machine when handling Asp.Net pages. As I stated initially this was not the case before. So what I'm trying to get across is this may not be a bug or feature limitation at all or if it is it is only present under certain circumstances which I can't figure out a cause of. So to lay out my experience up to this point: 1. ASP.Net on Apache works just like Asp.Net on IIS except VS.Net thinks that projects opened on Apache server are ASP 1.0. 2. Realize the only difference in responses is 'X-AspNet-Version' header is missing from Apache response. 3. Modify httpd.conf to send 'X-AspNet-Version: 1.1.4322' 4. VS works as it should. 5. File this bug 6. Check headers later and notice 'X-AspNet-Version: 1.1.4322,1.1.4322' 7. Remove statement in httpd.conf. 8. Header is sent but WITHOUT duplicate version numbers 9. Everything still works fine with no modifications New in Net 1.1 ASP.NET Side-By-Side (IIS uses this setting) C:\Documents and Settings\UserNamefindstr /i /s x-aspnet c:\windows\microsoft.net machine.config c:\windows\Microsoft.NET\Framework\v1.1.4322\CONFIG\machine.config: enableVersionHeader=[true|false] - outputs X-AspNet-Version header with each request C:\Documents and Settings\UserNamefindstr /i /s enableVersionHeader c:\windows\microsoft.net machine.config c:\windows\Microsoft.NET\Framework\v1.1.4322\CONFIG\machine.config: enableVersionHeader=[true|false] - outputs X-AspNet-Version header with each request c:\windows\Microsoft.NET\Framework\v1.1.4322CONFIG\machine.config: enableVersionHeader=true Jeff
Re: DO NOT REPLY [Bug 33944] - 'X-AspNet-Version' Header Should Be Sent for Compatibility With Visual Studio
From: Jeff White New in Net 1.1 ASP.NET Side-By-Side (IIS uses this setting) I meant to say Visual Studio 2003 uses this to decide what version of the .NET Framework to use too. Jeff
Re: [PATCH] Win32: install service in rewrite args rather than post_config?
From: Bill Stoddard Bill R correctly identified the reason I'd like to see the service install occur before post-config. And if there is an error here do what? Also what if one has never read the source code, before post-config means nothing to one who may know the answer to a simple question. If the last thing your installer does is install the service, the service install will fail if there is a problem with httpd.conf. Yes and you want to do what here? The most likely problem is that some other service is using port 80 (or port 443, or whatever port you want httpd to listen on). Yes and you want to do what here? You still have not said A This is happening to me (users) Port already used B And if A I (users) want to do this Tell Users - never install Tell Users - after Install Fix the problem, try again? C All A and B but for a developer Tell users/developer what and when, and then do what? So once again, what is the real problem (user or developer) and what to you want or wish to do about it? Jeff
Re: Silly Question
From: William A. Rowe, Jr. FYI post You should consider converting your .asp pages to .aspx (which is not entirely trivial but not that difficult either) Good advice since ASP support is going to slowly dwindle to nothingness, even in IIS. May be not in our lifetimes :) quote Snip A unified HTTP pipeline for native and managed applications alike. You'll be able to use forms-based authentication for classic ASP pages. /quote A First Look at IIS 7.0 http://www.ftponline.com/reports/vslivesf/2005/ruest/ What happen to correcting the Protocol comments? Jeff
Re: [PATCH] Win32: install service in rewrite args rather than post_config?
From: Bill Stoddard It would, but is it worth the extra code to enable switching between both behaviours? Got some code to review? Bill What's the real problem Bill (Stoddard) wants to over come or what does he really want to happen? Got some example ideas? Jeff
Re: 2.1.3 mod_disk_cache partial responses
From: dean I can capture traffic using tcpdump, but there is so much mess (arp, dns, acks etc), is there a filter to clean it up to only show the relevant packets. B.T.W. Im running the proxy on Mandrake 9.1. and testing it from winxp Firefox IE6. Perhaps quote Learn how to use the Microsoft Fiddler HTTP debugger when developing and testing Web applications and clients. Have you ever found yourself wondering how Microsoft Internet Explorer interacts with your Web application? Have you encountered a strange performance bottleneck that you can't track down? Are you curious about which cookies are being sent, or what downloaded content is marked as cacheable? Microsoft Fiddler can help you answer these questions, and many more. Fiddler is an HTTP debugging proxy that logs all HTTP traffic between your computer and the Internet. Fiddler enables you to inspect all HTTP traffic, set breakpoints, and fiddle with incoming or outgoing data. Fiddler is much simpler to use than NetMon or other network debuggers because it exposes only HTTP traffic and does so in a user-friendly format. Fiddler includes a simple but powerful Microsoft JScript .NET event-based scripting subsystem flexible enough to support a broad array of HTTP debugging tasks. Written in C# on the Microsoft .NET Framework, Fiddler is available as an unsupported PowerToy for Internet Explorer. /quote Fiddler PowerToy - Part 1: HTTP Debugging http://msdn.microsoft.com/library/en-us/dnwebgen/html/IE_IntroFiddler.asp Jeff
Do you like the CLI standards?
January 6, 2005 quote Snip I am a member of ECMA, an international standards body, where I am chair of the committee responsible for standardizing the CLI (Common Language Infrastructure) and C#. Snip So here is my initial question to ponder: What is your feeling about the standardization of the CLI within ECMA and ISO? Snip What are your thoughts here? Is standardization a good thing? Bad thing? Doesn't matter? We are currently in the midst of developing edition 3 of the CLI specification and hopefully should be complete soon. /quote Joel Marcey http://spaces.msn.com/members/jimarcey/ Jeff
Re: svn commit: r123867 - /httpd/mod_aspdotnet/trunk/Apache.Web/WorkerRequest.h
From: [EMAIL PROTECTED] Handle GetProtocol correctly (and consistant with ASP.NET conventions.) A very, very good idea! :) virtual String* GetProtocol(void) quote When overridden in a derived class, returns the HTTP protocol (HTTP or HTTPS). /quote .NET Framework Class Library HttpWorkerRequest.GetProtocol Method http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemWebHttpWorkerRequestClassGetProtocolTopic.asp { -// TODO: HTTPS when appropriate +#if MODULE_MAGIC_NUMBER_MAJOR = 20050101 +// Fixes in httpd-2.1-dev +const char __nogc *method = ap_http_scheme(rr); +#else +const char __nogc *method = ap_http_method(rr); +#endif Seems to me, that some other developers are the ones who cannot make up their minds, as to just what all this really means. :) +String *scheme(method); Really confusing me now, and using only three words. :) + +// For some silly reason, the ASP.NET team thought that schemes +// are upper case entities; I disagree with your reading of most of the .NET documentation. Protocol when used in most tech papers today, is usually always upper cased. quote In information technology, a protocol (pronounced PROH-tuh-cahl, from the Greek protocollon, which was a leaf of paper glued to a manuscript volume, describing its contents) is the special set of rules that end points in a telecommunication connection use when they communicate. /quote protocol http://searchnetworking.techtarget.com/sDefinition/0,,sid7_gci212839,00.html Notice in the above link that the usage for all named protocols is always upper cased. Also see the Protocol Directory Index of WAN, LAN, and ATM Protocols http://www.protocols.com/pbook/index.htm +scheme = scheme-ToUpper(nullCulture); #ifdef _DEBUG -LogRequestError(LGetProtocol: returns HTTP, APLOG_DEBUG, 0); +String *schemeMsg = String::Concat(LGetProtocol: returns , scheme); +LogRequestError(schemeMsg, APLOG_DEBUG, 0); #endif -return new String(LHTTP); +return scheme; } quote A string containing the scheme of the specified URI. /quote .NET Framework Class Library Uri.Scheme Property http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemUriClassSchemeTopic.asp Now please try the sample included with the above link (about URI/Scheme) but use all uppercase chars. For example: newUri(http://www change to new Uri(HTTP://www What do you get back? Notice the below: quote Provides an object representation of a uniform resource identifier (URI) and easy access to the parts of the URI. SNIP To put the URI in canonical form, the Uri constructor performs the following steps. Converts the URI scheme to lower case. Converts the host name to lower case. /quote .NET Framework Class Library Uri Class http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemUriClassTopic.asp I believe your source code comment quote + +// For some silly reason, the ASP.NET team thought that schemes +// are upper case entities; /quote should be removed. If you disagree with me, please provide some sort of other information (.NET docs, links, and etc.) with your reply. Jeff
Re: How to debug HTTP Server in Windows with VC6.0
From: nian li I want to know how to debug HTTP Server in Windows with VC6.0. There is another way too. Windows Scripting, the best tool ever for Apache on Windows usage for both developers and admins. :) quote You can get a crash dump on the production box and then take it back to a dev box where you have symbols to find out the cause of the crash. quote from docs Snip ADPlus is a new tool from Microsoft Product Support Services (PSS) that can troubleshoot any process or application that stops responding (hangs) or fails (crashes). Snip Frequently, you can use ADPlus (ADPlus.vbs) as a replacement tool for the Microsoft Internet Information Server (IIS) Exception Monitor (6.1/7.1) and User Mode Process Dump. These are two separate tools that PSS frequently uses to isolate what causes a process to stop responding (hang) or quit unexpectedy (crash) in a Microsoft Windows DNA environment. Snip ADPlus works with any user mode process or service such as Internet Information Services (IIS), Microsoft Transaction Server (MTS), or Microsoft COM+ applications. Snip ADPlus is console-based Microsoft Visual Basic script. It automates the Microsoft CDB debugger to produce memory dumps and log files that contain debug output from one or more processes. /quote from docs How To Use ADPlus to Troubleshoot Hangs and Crashes http://support.microsoft.com/?id=286350 Thanks Brian [MSFT] Microsoft Developer Support /quote Learn more about Windows Scripting with the language of your desire too. Browse the script Repository http://www.microsoft.com/technet/scriptcenter/scripts/default.mspx Scripting Languages Available in the Script Center http://www.microsoft.com/technet/scriptcenter/scripts/language.mspx Jeff
Re: Compiling with VC++ 8 (Express beta)
From: Tonko Juricic Subject: Compiling with VC++ 8 (Express beta) Isn't the loading of the CLR different for _any_ .NET version over 1.1? Hasn't CLSID_CorRuntimeHost and IID_ICorRuntimeHost been replaced with CLSID_CLRRuntimeHost and IID_ICLRRuntimeHost? And aren't there many, many hosting options available for the .NET 1.2 (and up) Framework? Plus aren't there major different plain C++ programming styles changes for version 8 (and so on)? No matter what the answers are, feel free to branch the .NET 1.1 mod_aspdotnet source code and carry on. ;) Jeff
Re: httpmodule bug
By the way using old RC1 MSI Will look at HttpApplication state settings between turkey cooking and eating - seems something touchs them? (?) Go relax Bill Jeff - Original Message - Sent: Wednesday, November 24, 2004 5:05 PM Subject: Re: httpmodule bug From: Yussef Alkhamrichi Hope someone out there puts together a custom HttpModule and tries this out, I will continue to search if I can find this bug (sadly there isn't a way to hack into the config file loading of .NET). I tried a simple Hello HttpModule and on first try: Server Error in '/TestHttpModules' Application. The module 'HelloWorldModule' is already in the application and cannot be added again Tried remove in web.config Line 2: system.web Line 3: httpModules Line 4:remove name=HelloWorldModule / Line 5: add name=HelloWorldModule Line 6:type=HelloWorldModule, HelloWorldModule / Parser Error Message: There is no 'HelloWorldModule' module in the application to remove. Tried blocking out the whole name this time... httpModules !-- remove name=HelloWorldModule / add name=HelloWorldModule type=HelloWorldModule, HelloWorldModule / -- /httpModules System.Threading.ThreadAbortException: Thread was being aborted. Adding a clear works configuration system.web httpModules !-- remove name=HelloWorldModule / -- clear / add name=HelloWorldModule type=HelloWorldModule, HelloWorldModule / /httpModules /system.web /configuration Moving clear to bottom httpModules !-- remove name=HelloWorldModule / clear / -- add name=HelloWorldModule type=HelloWorldModule, HelloWorldModule / clear / /httpModules runs with no error but not httpmodules output either! Seems mod_aspdotnet needs a clear first as you said! Jeff
Re: Short or long variable names?
From: William A. Rowe, Jr. One (extreme) hassle is leaving the httpd code legible to httpd'ers and leaving .NET code legible to .NET'ers. I had chosen the conventions of using 'traditional' variable names for httpd datum, and 'wordy' variable names for the internals of Apache.Web. In Apache.Web all data is visible In Apache even the short rr and rv really do mean something but what? It wasn't a nice practice to start and now one can see why. In mod_aspdotnet and all assemblies one should use reader readable variables. Much easier for the old httpd'ers to read mod_aspdotnet with descriptive variables, than for .NET user usage to say what Mod_aspdotnet and the assemblies are only written once, but read over and over again.. There are quite a few cases where the variable name (e.g. static 'conf' structure in the mod_aspdotnet.cpp source) is horrid and needs to be cleaned up. I'm almost thinking, native_xx for variable names from apache and apr - would that improve legibility? I'm not sure one needs native_ but definitely not rr, rv, abc, and so on Compare Parameter name = rv Type=System.Int32 Position=2 Optional=False to Parameter name = loglevel Type=System.Int32 Position=1 Optional=False By the way is there an .NET enum for loglevel? Jeff
Re: Short or long variable names?
From: William A. Rowe, Jr. let me get ahold of my life first I see you doing so much, what life? More later Jeff
Re: People still using v1.3 - finding out why
From: Graham Leggett are there in the experience of the people on this list any other significant apps out there that are keeping people from deploying httpd v2.x? Because there can only be one number one! ASF told them over and over again that it is number one. (rightly or not) The users followed ASF words Because there can only be one number one! The users believe, if it wasn't number one, ASF would have pulled it. Because there can only be one number one! ASF has not! Because there can only be one number one! Good luck, Jeff
Windows XP SP2 Loopback
As I posted a while ago in the users list, Windows XP SP2 loopback has problems Try the below: quote This update helps resolve an issue on computers running Windows XP Service Pack 2. Programs that connect to IP addresses in the loopback address range may not work as expected /quote Update for Windows XP Service Pack 2 (KB884020) http://www.microsoft.com/downloads/details.aspx?familyid=17d997d2-5034-4bbb-b74d-ad8430a1f7c8displaylang=enHash=SW3SH7C Jeff
Re: Windows HTTP API
In .NET Framework (soon out): HttpListener class (uses HTTP.SYS) Defined as a simple web server In below article, jump to: quote Web Services Anywhere There are some interesting scenarios that require exposing a Web service from an application that is not running in IIS; for example, running a Windows Forms desktop application that receives callbacks from a remote server. Since version 1.0 of the .NET Framework, it has been possible to host ASP.NET (including ASMX Web services) in any process, such as a console or Windows Forms application. Now HttpListener makes it easier to do this. Snip The figure below shows at a high level how a managed application uses HttpListener to host ASMX services. /quote New Features for Web Service Developers in Beta 1 of the .NET Framework 2.0 http://msdn.microsoft.com/webservices/default.aspx?pull=/library/en-us/dnvs05/html/wsnetfx2.asp .NET Framework 2.0 Beta 1 http://www.microsoft.com/downloads/details.aspx?familyid=F1232C37-0FEE-4AA6-AA89-B6DCEFC0873Bdisplaylang=en .NET Framework 2.0 SDK Beta 1 http://www.microsoft.com/downloads/details.aspx?FamilyID=916ec067-8bdc-4737-9430-6cec9667655cDisplayLang=en Jeff
Re: Windows HTTP API
Before one moves on to what I was told was the real topic of this thread... Kornl Pl however this topic is about using HTTP API in Apache HTTPD. First let's clear up some ideas. :) Forgetting about logging for now. WRowe I thought the entire point was that it It being the HTTP.SYS service... was smart enough to act like a squid-like low level in-kernel cache? If not I'm disappointed :) Yes I believe it is... So does everyone agree with the below: That once a file is HTTP.SYS cached (for now we do not care how or why only that the file is cached), that once a file is cached in the service cache of HTTP.SYS, from there on until the cached file has reached it's set timed out period or the HTTP.SYS is stopped, then only the HTTP.SYS service will handle the file and send the file, as a cached response (no other process is needed, whether that process be IIS or Apache or a .NET Framework http aware process)? Agreed? Now clearing up other ideas: Kornl Pl It's a reply to a quotation that said HTTP API is not a good choice for a high demand place as it lacks a lot of feauters. But the author of this quotation thought that HTTP API is a web server. And Kornl Pl HTTP API is not a web server. Correctusually there is another http aware process involved, but a little FYI: Windows now means .NET Framework... (yes old Windows http ways are still available Winsock and all, but newer http ways are HTTP.SYS and .NET Framework) Yes both old and new can be used together if one does the work. Anyway this is why I say, with the newer Windows ways, (.NET Framework usage), it can be used now (beta) and soon (I hope with the final Windows XP SP2 release, but who knows) as a simple web server. (via .NET Framework) When the .NET Framework class was written, the class includes the code from HTTP.SYS, making HTTP.SYS a .NET Framework callable web server or a HTTP.SYS function caller for another http aware process. Read on In .NET Framework (soon out): HttpListener class (uses HTTP.SYS) Defined as a simple web server One that can self-host or be hosted by another server (http aware process)... Windows XP SP2 and higher... This is what I meant by stand alone ( yes for a quick and dumb web server) but, HTTP API by itself ( using C/C++ or PInvoke with .NET Framework without HttpListener) always needs another process, unless serving cached files (put there by another http aware process). So right now I would not use .NET Framework's HttpListener (a HTTP.SYS web server), for a high demand business without adding other classes but yes HTTP.SYS is or is not (user's choice) in the .NET Framework, a web server and maybe great for those quick http actions, for say grandpa's pictures and other such quick business needs. (Yes under the covers HTTP.SYS is a separate service combined with others actions to make it a simple .NET Framework web server) So that was the stand alone web server thought via .NET Framework... Let it go if you must, but be aware of it. There is a lot going on in .NET Framework, even with (and for) Apache usage, but that is for another thread... Jeff
Re: Windows HTTP API
From: Kornl Pl I have to say you are wrong. Okay I often am but where? :) I've quoted the lines in your are wrong in my opinion.:) Summarized: only static files, I said: HTTP.SYS is for quick static responses quote The HTTP API provides developers with a low-level interface to the server side of the HTTP functionality as defined in RFC 2616. The API allows the application to receive HTTP requests directed to URLs of interest to it, and send HTTP responses. For sending dynamic responses, however, the ISAPI or ASP.NET interfaces are a better choice than the HTTP API. /quote About HTTP API http://msdn.microsoft.com/library/en-us/http/http/about_http_api.asp Kernel mode HTTP.SYS usually receives requests and routes them to another user mode process, unless there is a response stored in the kernel mode HTTP.SYS cache. An example of HTTP.SYS using another process and caching: quote Does a page get cached or not? IIS 6.0 has a great response caching feature implemented in the kernel-mode http.sys driver. Depending on the app and the load characteristics, it can greatly improve application performance for both static and dynamic pages by caching html responses in kernel mode. The performance improvement comes primarily from eliminating the transitions from kernel to user mode typically needed to service a request. Response caching works with static files, as well as with dynamic content in ASP and ASP.NET. For ASP.NET, you enable caching through the configuration directive: %@ OutputCache Location=Server % But how does http.sys determine whether to cache a page? One way would be to cache each page requested in FIFO order. So once the cache fills up, then the oldest cache entry would be the first to drop off the list. However, it's common for a page to be requested only infrequently, so this would fill the cache unnecessarily. Instead, pages are cached only if they are requested twice within a configurable activity period, whose default is 10 seconds. For example, if you have an application that serves stock quotes (this is essentially what http://quotes.nasdaq.com, which runs IIS 6 does) and you're commonly getting requests for quotes for MSFT. Once cached, the response is returned directly from the kernel-mode cache. But what about the price of the stock, which changes? The attribute 'Duration' allows you to indicate how long to cache a response. So if you set Duration=10, you're keeping the response in the cache for 10 seconds. /quote only small server, Not a real new big business web server. But may be a server for the one man shop Yes HTTP.SYS may be fine as a stand alone home office web server (via the newer .NET Framework class) but for a high demand place? HTTP.SYS needs more... HTTP.SYS is a device (a very helpful device) quote The HTTP API does not support the following functionality: The HTTP API does not perform client or server authentication based on the contents of the HTTP request headers. Any authentication that is required must be implemented by the application. The HTTP API does not support WOW64 on 64-bit machines. The HTTP API does not support logging of HTTP requests and responses. The HTTP API does not chunk outgoing HTTP responses. The application must implement response chunking if it is needed. /quote HTTP API Features http://msdn.microsoft.com/library/en-us/http/http/http_api_features.asp improved security and may be for security of open ports, etc. :) What is the HTTP.SYS device's default binding in Windows XP SP2? What is the Windows Firewall default in Windows XP SP2? Developers (and users) need to be aware of both of these new controllers as Windows system parts. Perhaps with programs that use the new APIs from the Firewall and the HTTP.SYS device. Or perhaps the user will need to use the config tools for these devices (or a program with rights to use these config tools). If all port is open (it's a really huge number of open ports, but why not:)) Please read why not to have open ports elsewhere. :) Jeff
Re: Windows HTTP API
From: Kornl Pl To successfully allow applications to use the same port on different IP addresses, you must use a new utility, Httpcfg.exe. I don't agree with MUST I believe, in this one article (for 98 percent of the non coding admins) the word must is correct for the new way to control Windows ports. This article does not mean for everyone this is the only way. Always ask who is this article written for? Then add your own know how in order to use the article information or not. as it uses HTTP API and it's source code is available as well. See http://msdn.microsoft.com/library/en-us/http/http/httpcfg_exe.asp Doc words are a pain but one may need HTTPcfg.exe For those current processes that do not know about this HTTP device, (and non coders), in order to may be work with HTTP.SYS. This doesn't mean it will always work, that is why some may need to rewrite their code. :) So I guess the real question is has one tried Apache and IIS with Windows Server 2003 or Windows XP SP2 via HTTP.SYS? Windows XP SP2 includes HTTP API however IIS 5.1 doesn't use it (uses Winsock) so this option doesn't exist, Not in the same way as but on Windows Server 2003 with IIS 6.0 it's a real opportunity. But Apache and IIS 5.1 do not talk together but possibly may share together a device on the non server OS of Windows XP SP2 RC2. Remember when one works with Apache and Microsoft docs, one must _always_ read between the lines and work differently (with the docs) in order to do stuff in a different way. Always take each doc for it's slant on what it is talking about. There may be other articles that suggest other ways. :) Jeff
Re: Windows HTTP API
From: William A. Rowe, Jr. Thanks for the interesting references and citations. Yes but for anyone with the equipment to test this stuff, the real interesting stuff is just beginning in the next few months or years. Being a retired old man without equipment, (but still doing odd jobs) others will need to do the testing. :) Apache HTTP server works at a lower level, below the layer exposed by this http.dll API. Remember this: HTTP.SYS is for quick static responses. They may be cached html files sent via the Windows kernel. Not a real new big business web server. But may be a server for the one man shop and may be for security of open ports, etc. :) Some say as goes Windows XP SP2 goes Windows... So the question: If on Windows XP SP2 one keeps the HTTP.SYS and Firewall on (controlling all ports) for safety, even on a firewalled network (remember that just plugged in on the network sick laptop is behind the network firewall already), how does any Apache APR product get access to the Windows ports? May be there is no ASF helpful Windows device in Windows XP SP2 or even a problem but always test. To actually use this interface would require a few things; HTTP.SYS is for fast kernel static HTML output (97% of the HTTP actions) and new Windows port sharing... This is why IIS 6 uses HTTP.SYS first, either quickly respond via HTTP.SYS or send it on to IIS or whatever... apr_socket_foo() API Yes most likely an APR thing, because one does not need Apache HTTPD in order to use these many new (may be required) Windows APIs with APR products. So it's an interesting thought experiment to me. And to others. the schema doesn't strike me as a secure or fast solution. I didn't see any sendfile() or other optimized mechanisms for response bodies, maybe I just wasn't digging deep enough. quote The HTTP application programming interface (API) enables applications to communicate over HTTP without using Microsoft Internet Information Server (IIS). Applications can register to receive HTTP requests for particular URLs, receive HTTP requests, and send HTTP responses. The HTTP API includes SSL support so applications can exchange data over secure HTTP connections without depending on IIS. It is also designed to work with I/O completion ports. /quote Play with these new Windows XP SP2 devices, test 'em and see... :) Jeff
Re: Windows HTTP API
From: Kornl Pl I believe, in this one article (for 98 percent of the non coding admins) the word must is correct for the new way to control Windows ports. This article does not mean for everyone this is the only way. Always ask who is this article written for? Then add your own know how in order to use the article information or not. This newsgroup is for developers so we have to tell the real truth:), as we know that altough there isn't an exe file to do something we are able to produce it.:) I do not understand any of the above, please explain... Jeff
Re: Windows HTTP API
From: Kornl Pl Jeff White wrote: HTTP.SYS is for quick static responses. They may be cached html files sent via the Windows kernel. Not a real new big business web server. But may be a server for the one man shop and may be for security of open ports, etc. :) I have to say you are wrong. Okay I often am but where? :) HTTP API is really fast in cached responses however it doesn't mean any overhead on dynamic responses as the work it does with the request and response should be done by the web server if it don't use HTTP API. So I believe you are saying I am wrong with HTTP.SYS is for quick static responses.? Perhaps this HTTP.SYS main idea and heart is for quick static responses. If not the above, I do not understand, please explain... And I think HTTP API doesn't provides any extra security. Okay for starters, what happens when on Windows XP SP2 HTTP.SYS gets an invalid request when controlling all ports? Or a request for access on an open port but nothing defined with HTTP.SYS for that open port? Now compare the difference with a computer with an open port but no HTTP.SYS on Windows XP SP1. See any big security differences? Jeff
Re: Windows HTTP API
From: Kornl Pl Microsoft describes http.sys as the kernel mode cache of IIS 6, however it's kernel mode HTTP listener with cache for any application. quote The HTTP application programming interface (API) enables applications to communicate over HTTP without using Microsoft Internet Information Server (IIS). /quote Anyway, at first, there will just be a few hundreds of million or so, of these default on HTTP.SYS devices, active on the Internet. Because it seems HTTP.SYS (a HTTP listener and router and responder with cache, SSL, and etc.) will be a part of all Windows systems. Yes HTTP.SYS is being back ported to Windows XP SP2 and this and other Windows XP SP2 changes may be added to the higher up Windows systems. Using http.sys Apache HTTPD could be used with IIS 6 on Windows sharing the same port and IP address. I think this is a good thing if you want to host more web sites using different server software on the same server. Yes since HTTP.SYS (default on) will allow other processes to share the same port (if using the HTTP.SYS APIs or the HTTP config tool). Or perhaps, via the newer .NET Framework HttpListener class (works with HTTP.SYS), is a simple Web server (that can self-host ) or work with others. Grandpa and Grandma can turn their kiddies HTTP pictures (site) off and on. Or business users can turn off and on, their many simple HTTP get and send actions (web services too). And if the URI is not valid or there is nothing registered (with HTTP.SYS) and the port is open, then HTTP.SYS returns a HTTP error message. I think you should consider implementing HTTP API in Apache HTTPD as it has a lot of possibilities. More information about HTTP API is available in Platform SDK: http://msdn.microsoft.com/library/en-us/http/http/http_api_start_page.asp Sincerely, Kornl I added Apache APR because APR is where ASF's HTTPD and APR users, that access Windows ports (for one thing), will use or not use these new Windows system wide changes. The Windows HTTP.SYS device (Windows XP SP2 and higher) and the new Windows Installer (Windows 2000 and up) and of course, the Windows Firewall (Windows XP SP2 and higher). And these above objects do not include the many major changes to the system shell HTTP reader, commonly called Internet Explorer. All these new Windows system objects will be default on for the user (and most users will / should keep them on). So all other programs will need to be aware of and work with these new Windows system wide objects. Release Notes for Microsoft Windows XP Service Pack 2 Release Candidate 2 Updated: June 14, 2004 http://www.microsoft.com/technet/prodtechnol/winxppro/deploy/relsprc2.mspx Windows XP Service Pack 2 Release Candidate 2 Preview http://www.microsoft.com/technet/prodtechnol/winxppro/sp2preview.mspx quote To successfully allow applications to use the same port on different IP addresses, you must use a new utility, Httpcfg.exe. /quote Perhaps this really means: quote The HTTP API allows multiple applications to co-exist on a system, sharing the same TCP port (for example, port 80 for HTTP or port 443 for HTTPS) and serving different parts of the URL namespace. quote HTTP.SYS can route by any: URI or parts of the URI. So continuing on: quote Httpcfg.exe is located on the Windows Server 2003 CD in the Support\Tools directory as part of the Support.cab file. Snip To configure HTTP.sys, you must use Httpcfg.exe. Snip In IIS 6.0, HTTP.sys is the TCP listener and HTTP.sys does not use the Winsock API. Sockets are not a configurable property. HTTP.sys uses an IP inclusion list. By default, this list is blank and IIS listens on all IP addresses. You can specify the IP addresses IIS will listen on by adding them to the IP inclusion list. /quote IIS 6.0: Setting Metabase Property DisableSocketPooling Has No Effect http://support.microsoft.com/default.aspx?scid=kb;EN-US;813368 Also the people who bring you HTTP.SYS and the WINHTTP.DLL now have a blog. quote This is a collaborative Weblog from the Web Transports Team in Windows Networking. As a team we work on the http stacks in Windows; http.sys the kernel part of the IIS 6.0 Web Server (part of Windows Server 2003) and its own developer API, wininet.dll which is the client side HTTP stack at the heart of Internet Explorer, and winhttp.dll which is the client side HTTP stack favored by server applications relying on performance and reliability. /quote The Web Transports team http://blogs.msdn.com/webtransports/ So I guess the real question is has one tried Apache and IIS with Windows Server 2003 or Windows XP SP2 via HTTP.SYS? Jeff
Windows XP SP2 - Windows Installer 3.0
Even though Joshua says Windows XP SP2 reports are off limits for Apache lists Jeff, this is not appropriate content for the Apache users list. (And it i *especially* not appropriate for [EMAIL PROTECTED]) Windows Installer 3.0 comes with Windows XP SP2 The below are from beta docs: quote Windows Installer service is no longer interactive Detailed description The Windows Installer service runs in the security context of the Local System account. In previous versions of Windows, the service attribute of Windows Installer was set to SERVICE_INTERACTIVE_PROCESS. This made the Windows Installer service interactive. An interactive service can display its own user interface and receive user input and may be a security vulnerability. Because of this, the Windows Installer 3.0 service is no longer interactive. Why is this change important Interactive services running under the Local System context allow users to post messages to a program running in a different security context and may allow some types of attacks to occur. What threats does it help mitigate? Users will not be able to interact with the Windows Installer service. /quote Heard anything? April 13, 2004 quote Q:What's new in MSI 3.0 from MSI 2.0? A: MSI 3.0 is focused on application servicing. New features in MSI 3.0 include the ability to uninstall patches, ability to create delta-compression patches without source requirements, ability to sequence patches, ability to bless patches for application by non-administrators to elevated installs, static source list management, and richer set of inventory API. Q: When will MSI 3.0 be released? (dates please) A: MSI3.0 is slated for release with Windows XP/SP2 - Q4/2004. We will also provide a redist release for MSI3.0 that targets Win2k/SP3 and higher, Windows XP - RTM and SP1 and Windows 2003 Server RTM within a couple of weeks of the Windows XP/SP2 release. Q: Can I use MSI 2 and MSI 3 together on one Machine? A:MSI20 and MSI30 cannot coexist on one machine. Upon install, all MSI20 binaries will be upgraded to version 3.0. Q: Can I install MSI 3 on Win9x Machines? A: No. MSI3.0 will only be supported on Windows 2000 SP3 and higher, Windows XP and Windows Server 2003. Q: How will WIX affect MSI 3.0? A: WIX is the Windows Installer XML authoring tool. It doesn't have a direct affect on MSI 3.0. The WIX authoring tool makes it possible to author installation packages using XML and to easily integrate building packages in a build environment. Future enhancements to WIX may make it easier to build patches as well - something well-served by MSI 3.0 Q: If MSI 3.0 is included in SP2, will it be possible to not install MSI 3.0 as part of the upgrade? A: MSI30 is part of the WinXP/SP2 release. When you upgrade to SP2, you get MSI3.0. There is no mechanism to not install MSI3.0 as part of the upgrade to xpsp2 /quote Windows Installer - MSI3.0 http://msdn.microsoft.com/chats/windows/windows_041304.asp Jeff
Vc++ Toolkit
quote The VC toolkit does support /MT (it does not support /MD). Ronald Laeremans Visual C++ team /quote Jeff
Re: Free Microsoft Compilers
From: William A. Rowe, Jr. Microsoft Visual C++ Toolkit 2003 http://msdn.microsoft.com/visualc/vctoolkit2003/ Thanks for the reference Jeff! Unfortunately it is missing the #1 bit we need to pull off a free build of httpd or apr, and that is nmake :( It looks like, with a free make Lots of those. But what is a makefile? :) (read below) quote Starting with the Visual Studio 2005 release, the Microsoft build engine black box is extracted from Visual Studio. The new build engine, MSBuild, becomes extensible and available for all since it will ship with the .NET Framework. Snip MSBuild is a technology installed with the CLR in Visual Studio 2005 and Longhorn. Its goal is to replace makefiles by project files written in XML that let you build large-scale systems. /quote Overview of MSBuild, Part 1: From a Project Author's Perspective http://msdn.microsoft.com/longhorn/default.aspx?pull=/library/en-us/dnlong/html/msbuildpart1.asp Now ASF has XML for Windows installation, Windows building, where are the Windows httpd XML configs?:) and awk though, the end user could build all of apache with this compiler. And with the files from the .NET Framework SDK, one can create a simple Apache CPP module that loads .NET Framework assemblies written in CSharp (C#) or VB or whatever. Jeff
Free Microsoft Compilers
quote The Microsoft Visual C++ Toolkit 2003 includes the core tools developers need to compile and link C++-based applications for Windows and the .NET Common Language Runtime: Microsoft C/C++ Optimizing Compiler and Linker. These are the same compiler and linker that ship with Visual Studio .NET 2003 Professional! C Runtime Library and the C++ Standard Library, including the Standard Template Library. These are the same static-link libraries included with Visual Studio. Microsoft .NET Framework Common Language Runtime. Visual C++ can optionally build applications that target the Common Language Runtime (CLR). Sample code. The toolkit includes four samples designed to showcase the powerful new features of the 2003 version, including new optimization capabilities, features to improve code-security and robustness, enhanced ISO C++ standards support, and the ability to use the .NET Framework library and target the CLR. /quote Microsoft Visual C++ Toolkit 2003 http://msdn.microsoft.com/visualc/vctoolkit2003/ Jeff
Re: Thread terminatinos ?
From: Nick Kew Hello everyone. I have Apache 2 module running under Windows.In each Apache's thread I have a separate ODBC connection to a database. Why every thread? Wouldn't it be more efficient to share a connection pool between your threads? You might possibly want to look at mod_pg_pool (at http://apache.webthing.com/ ) as a template for that. Or the many other ways! My questions are : Can't answer them. ICBW, but AIUI threads in your MPM are merely an implementation of Apache's abstract architecture, so if you tie something to them, you're more-or-less fighting against the architecture. That means your module is likely to be non-portable and at risk of breaking on future Apache updates. Really define MPM? quote ...the purpose of MPMs is to improve performance on specific platforms. /quote Ryan Bloom the creator of Apache2! 1) What could be a reason for one Apache thread to be terminated The thread did what it was suppose to and returned or timed out or 2) How can I be notified when a thread is destroyed so I can close the DB connection Forgetting the database issues here is how thread tracking on Windows can be done. You can do all this in any computer language but for all to follow along, in Windows Scripting: Windows Scripting with VBScript scripts. Adjust the scripts to your needs, then save the VBScript script file to any folder. Then in a command prompt window set to the VBScript script's folder, use the Windows Script Host (WSH) engine cscript.exe by typing: cscript.exe VBScriptFileName.vbs Remember one can also use the script language of your desire with the Windows Script Host (WSH) engines. Monitoring Threads http://www.microsoft.com/technet/scriptcenter/scrguide/sas_prc_kfqh.asp MSDN - The WMI Win32_Thread Class http://msdn.microsoft.com/library/en-us/wmisdk/wmi/win32_thread.asp MSDN - The WMI Win32_Process Class http://msdn.microsoft.com/library/en-us/wmisdk/wmi/win32_process.asp The TechNet Script Center http://www.microsoft.com/technet/scriptcenter An ONLINE version of the 1328 page Scripting Guide: Microsoft Windows 2000 Scripting Guide http://www.microsoft.com/technet/scriptcenter/scrguide/sagsas_overview.asp Jeff
Re: Apache + Windows
From: Bill Stoddard Peter J. Cranstone wrote: Bill, Here is an interesting link to a problem someone encountered running Apache on Windows. If he's right there is little hope for Apache to ever run properly on newer versions of Windows. http://grumet.net/weblog/archives/2003/11/18/questions_about_windows_apache. html Regards, Peter If I am not mistaken, I seem to recall that TransmitFile() is artifically limited to serving no more than 10 TCP connections on non server editions of Windows. I've not actually tried it myself. Bill Yes all networking actions are Workstation adjusted. And only 5 for Windows XP Home Edition. Microsoft Windows XP Professional Resource Kit Documentation Page 1539 last two paragraphs. Or Networking Features http://www.microsoft.com/technet/prodtechnol/winxppro/reskit/prhh_not_gehy.asp Jeff
Re: Apache + Windows
From: Bill Stoddard Andrew Mann wrote: http://www.microsoft.com/mspress/books/sampchap/5726.asp Also, because TransmitFile is geared toward server applications, it is fully functional only on server versions of Windows. On home and professional versions, there may be only two outstanding TransmitFile (or TransmitPackets) calls at any given time. If there are more, then they are queued and not processed until the executing calls are finished. It's not as official as MSDN I guess, but at least it's published by them. The article appears to be XP era. Andrew Yep, checkout MaxActiveTransmitFileCount here: http://www.microsoft.com/technet/treeview/default.asp?url=/technet/itsolutions/network/deploy/depovg/tcpip2k.asp Can work around this particular fooness with EnableSendfile off. No idea if this will make teh problem disappear tho. Bill Try using the built-in Windows Script Host (WSH) and the built-in (WMI) Windows Management Instrumentation via the built-in Windows Scripting language VBScript. Set the Allowed Number of TCP Connections http://www.microsoft.com/technet/scriptcenter/network/scnet133.asp Save the above little VBScript as whatever.vbs and start it by using the command line version of the Windows Script Host - cscript.exe. c:cscript.exe whatever.vbs Try the other networking options too. Networking http://www.microsoft.com/technet/scriptcenter/network/default.asp And for doing registry actions. Registry http://www.microsoft.com/technet/scriptcenter/registry/default.asp All done via the built-in Windows Scripting engine and the built-in languages (or download and use the language of your desire with the built-in Windows Script Host engines). Administration scripting examples and an ONLINE version of the 1328 page Scripting Guide: http://www.microsoft.com/technet/scriptcenter Jeff
Re: cvs commit: httpd-2.0/modules/arch/win32 mod_win32.c
From: William A. Rowe, Jr. Doesn't the Apache on Windows web server have available a built-in Windows Scripting Engine and two built-in scripting languages, that do not use the # as a scripting comment marker? No; Windows has a command-line Windows Scripting Host (cscript, as opposed to the window-based wscript). quote The Windows Scripting Engine serves as the component within Windows that interprets and executes script code written in scripting languages such as JScript or VBScript. /quote This Windows Scripting Engine component is used by many types of hosts: Windows Script Host - (WSH 5.6) has two parts. Cscript.exe - CUI - command line (like Perl.exe) Accesses COM and file system, StdIn, StdErr and StdOut for usage as say admin config type scripts or for accessing LDAP or ADSI or WMI or databases or Regex and etc. (lots more) on the desktop or server to server. Could run in Apache on Windows web server. Wscript.exe - GUI - output in window boxes on the screen much like those in the MsgBox. Same usage as Cscript.exe above but with different output. Best for desktop usage for admin type config usage same as Cscript.exe above but with the different output way (MsgBox style). Should not be used in Apache on Windows. Http Applications - HTA - Html files that run on the desktop but not via the browser. Uses a separate DLL. Accesses some COM and file system like WSH but is not the Windows Script Host. Desktop and server or to server. Could run on as Intranet usage with Apache on Windows. Not for the Internet. Internet Explorer - Browser usage. Internet - limits on Com and file system. Desktop - used for displays of list boxes, radio and combo boxes with WSH scripts. OS - Used in the Windows OS. No need here to explain DLLs usage. ASP - Used in IIS. (Sort of, but close enough for here without explaining all the DLLs used by everything.) Programs - Windows and third party programs. Calls the Com access to the engine and the scripting language usage is available. So the Windows Script Host is one of many ways that the Apache on Windows web server have available a built-in Windows Scripting Engine and two built-in scripting languages, that do not use the # as a scripting comment marker. There are a lot of add-in (downloadable) languages for usage with the Windows Scripting Engine. But there are only two built-in languages, VBScript and JScript. As André indicated, this is most trivially enabled using the Registry-based ScriptInterpreterSource directives. It is actually recommended that you use ScriptInterpreterSource registry-strict which will invoke the ExecCGI verb, instead of using the Open verb. Since it is most trivially enabled using the Registry-based ScriptInterpreterSource directives then why is this not the default (unneeded to turn on) for _all_ Apache on Windows? This ScriptInterpreterSource default would allow usage of the built-in Windows Scripting Engine as well as any other Windows OS known programs, such as Perl. There would be no need for _any_ scripting comment marker checking routine with the Apache on Windows web server. But if any scripting comment marker checking routine (of the shebang type), is performed, on Apache on Windows, without first having the ScriptInterpreterSource as the default, then this component within Windows that is available to every Apache on Windows web server, the built-in Windows Scripting Engine and it's built-in default languages, should be included into this scripting comment marker checking routine first, if not at least, somewhere in the #! checking routine in Apache on Windows. But if it is compat ways one seeks, then have the Unix type Apache versions, only check for ' (a single quote) and then the Unix type versions of Apache, can run two files also! :) This patch is a no-op relative to VB/J Scripts. But one added a BOM change (so changes are allowed) and yet left the #!, that is not used with Windows Scripting Engine's built-in default languages, available in all Apache on Windows web servers. There are many scripting languages, so if any scripting comment marker checking routine is needed, on Apache on Windows, then an option for scripting languages is needed too. A lot is happening with the Windows Scripting Engine. And most people only use it properly with the other Windows
Re: cvs commit: httpd-2.0/modules/arch/win32 mod_win32.c
wrowe 2003/02/23 14:37:35 Modified:modules/arch/win32 mod_win32.c Log: utf-8 win32 prefix when testing for shebang lines. Doesn't the Apache on Windows web server have available a built-in Windows Scripting Engine and two built-in scripting languages, that do not use the # as a scripting comment marker? Never. Now, perhaps some other compiled bytecode uses the mark, but that should be irrelevant, because we drop out of that logic if we don't encounter a !# after the BOM. No harm no foul. Has this been checked with the Apache on Windows access, to the built-in scripting engine, the Windows Scripting Engine (or WSH 5.6 usage, as some call it) and the scripting engine's default usage of the scripting languages of VBScript and JScript? Usage with the built-in Windows Scripting Engine by some Apache on Windows web servers, using the built-in scripting languages, is now doable via tricking the Apache on Windows web server. Tricking the server with a fake file, that uses the pain Unix based # way (or with an option that also turns on everything else at the same time) - ScriptInterpreterSource. But isn't it possible to also check for // (two slashes for JScript usage) or for a ' (a single quote for VBScript usage) during the Apache on Windows script usage routine? Perhaps the Apache on Windows web server needs a config option to allow the server's scripting routine usage of the various scripting comment markers. Don't forget to check for security updates, for the built-in Windows Scripting Engine, and the scripting engine's languages. Both the built-in ones and the ones added later for usage with the built-in scripting engine in the Apache on Windows web server. Check even if you think no one uses the built-in Windows Scripting Engine (or WSH 5.6) on the Apache on Windows web server. Jeff