{"componentChunkName":"component---node-modules-gatsby-theme-medium-to-own-blog-src-templates-blog-post-js","path":"/no-respect-for-iis/","result":{"data":{"site":{"siteMetadata":{"siteUrl":"https://javame.netlify.app","githubUrl":"https://github.com/aterreno/blog"}},"mdx":{"fields":{"slug":"/no-respect-for-iis/"},"excerpt":"I never liked  IIS , internet information services… Already the name sounds quite wrong. Coming from a Java/ * nix background, these are the…","timeToRead":3,"frontmatter":{"title":"no respect for IIS","description":"","categories":[],"date":"March 28, 2010","canonical_link":"https://javame.netlify.app//no-respect-for-iis-4b3857741ace"},"body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"no respect for IIS\",\n  \"description\": \"\",\n  \"date\": \"2010-03-28T00:00:00.000Z\",\n  \"categories\": [],\n  \"published\": true,\n  \"canonical_link\": \"https://javame.netlify.app//no-respect-for-iis-4b3857741ace\",\n  \"redirect_from\": [\"/no-respect-for-iis-4b3857741ace\"]\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"I never liked \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://www.iis.net/\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"IIS\"), \", internet information services\\u2026 Already the name sounds quite wrong.\"), mdx(\"p\", null, \"Coming from a Java/\", \"*\", \"nix background, these are the things I\\u2019m missing the most:\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"-\", \" A web UI\"), mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"Seriously, every application/web server I ever used had one, from the very basic and almost useless of the early versions of tomcat (didn\\u2019t check it for quite a while now) to the super complex and unusable of websfear (Google says: Did you mean: \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://www-01.ibm.com/software/websphere/\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"websphere\"), \"?).\", mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"I hate the fact that I\\u2019ve to remote desktop onto the machine, and the rich client UI seems a bit simplistic, it doesn\\u2019t look geek/professional enough, it seems just yet another silly tool from Microsoft like regedit or notepad, it\\u2019s ridiculous and also quite hard to use (all those \\u201CAdvanced settings\\u201D and \\u201CBasic settings\\u201D menus).\", mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"My impression is that at Microsoft they don\\u2019t have any idea on how to write something that looks enterprise, they always try to make happy the people that don\\u2019t know how to use a computer\\u2026\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"-\", \" Efficient/Proper/Decent Logging\"), mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"Last week we were trying some rules on \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://www.citrix.com/English/ps2/products/product.asp?contentID=21679\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"Netscaler\"), \", in order to balance traffic depending on user agents and other parameters: the IIS log sucks. After some googleing I\\u2019ve found out that I had to download and install the \\u201CAdvanced Logging Module for IIS\\u201D in order to have decent, real-time logging, as they call it. What? Logging has to be real-time always! And it is on any other server!\", mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"I believe that the \\u201Cstandard\\u201D installation of IIS doesn\\u2019t have \\u201Cthe advanced logging\\u201D feature just because the windows filesystem sucks but if you know any better reason to take off such an extremely basic feature off from IIS please let me know.\", mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"I had to install on all our cluster instances \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://www.cygwin.com/\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"cygwin\"), \" to get a proper tail, but I can\\u2019t blame IIS for this, it\\u2019s off topic.\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"-\", \" Rewrite module\"), mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"Well, apparently it\\u2019s \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://www.iis.net/expand/URLRewrite\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"another\"), \" \\u201Cadvanced module\\u201D, I kind of see that they wanted to have something like a plugin architecture (unfortunately you can\\u2019t just drop all these modules somewhere, you have to go through a bloody wizard!) but this module\\u2026 It\\u2019s again something very basic, I don\\u2019t understand what is advanced in it.\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"-\", \" Configuration\"), mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"In all the other application servers I know you setup/change once and then you are done with all the others: the configuration is on a readable format (and if you\\u2019re a cool dude you are not using the UI anyway!), you can copy it across all your servers, done.\"), mdx(\"p\", null, \"Some\\xA0.net folk may argue that you can do the same cloning the whole machine, good point. Unfortunately we went in some unknown and crazy IIS errors cloning one machine from one domain (QA) to another one (LIVE).\"), mdx(\"p\", null, \"I\\u2019ve no respect for IIS, and it\\u2019s a shame,\\xA0.net 3.5 and 4.0 are quite nice languages that are evolving not being stuck as Java.\"), mdx(\"p\", null, \"Other modules that you can get from the IIS site and I haven\\u2019t tried yet:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", _extends({\n    parentName: \"li\"\n  }, {\n    \"href\": \"http://www.iis.net/expand/webdeploy\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"http://www.iis.net/expand/webdeploy\"), \"\\xA0: web deployment\\u2026 another basic one totally missing\", mdx(\"br\", {\n    parentName: \"li\"\n  }), \"\\u2014\\u200A\", mdx(\"a\", _extends({\n    parentName: \"li\"\n  }, {\n    \"href\": \"http://www.iis.net/expand/ApplicationRequestRouting\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"http://www.iis.net/expand/ApplicationRequestRouting\"), \"\\xA0\\u2026 application based routing, quite basic and needed\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", _extends({\n    parentName: \"li\"\n  }, {\n    \"href\": \"http://www.iis.net/expand/ApplicationWarmUp\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"http://www.iis.net/expand/ApplicationWarmUp\"), \"\\xA0\\u2026 application warm up? what? yeah, right, apps in IIS take ages to start\\u2026 how sad!\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", _extends({\n    parentName: \"li\"\n  }, {\n    \"href\": \"http://www.iis.net/expand/IISManager\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"http://www.iis.net/expand/IISManager\"), \"\\xA0\\u2026 remote management\\u2026 No Web UI unfortunately\\u2026\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", _extends({\n    parentName: \"li\"\n  }, {\n    \"href\": \"http://www.iis.net/expand/PowerShell\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"http://www.iis.net/expand/PowerShell#mce\", \"_\", \"temp\", \"_\", \"url#\"), \"\\xA0\\u2026 scripting\\u2026 like bash? not really, but scripting\\u2026\")), mdx(\"p\", null, \"Other findings on IIS in my last 9 months:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Application pools \\u201Crecycle\\u201D every 20 minutes by default\"), \"! It\\u2019s like saying, you are such a shitty developer, I bet you got plenty of memory leaks, let\\u2019s restart your stuff every twenty minutes! Since starting an application in IIS is not really fast and since you\\u2019ll have probably to reconnect to the DB, reinitialize your application/NHibernate cache, your IOC container you may get some troubles here!\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Applications tends to take ages to start up\"), \", as mentioned above, I really don\\u2019t know why, the WarmUP Module may help (sad lol)\")), mdx(\"p\", null, \"No respect, not for Microsoft tools not for IIS, end of the story.\"));\n}\n;\nMDXContent.isMDXComponent = true;"},"allWebMentionEntry":{"nodes":[]}},"pageContext":{"id":"c3e0ea0c-7af9-59a0-838c-3638e4f46c45","previous":{"id":"f1cf4e06-e4fd-50d8-b1d0-021aa4feefef","fields":{"slug":"/monoglot-architecture-for-the-win/","published":true},"frontmatter":{"redirect_from":["/monoglot-architecture-for-the-win-86bc010c61fb"],"redirect_to":null,"title":"#monoglot architecture for the #win"}},"next":{"id":"35b4f75c-8f20-5764-971d-0166d34625c0","fields":{"slug":"/practices-of-the-proper-christian-programmer/","published":true},"frontmatter":{"redirect_from":["/practices-of-the-proper-christian-programmer-e0eaaaefddd5"],"redirect_to":null,"title":"Practices of the Proper Christian Programmer"}},"permalink":"https://javame.netlify.app/no-respect-for-iis/","themeOptions":{"plugins":[],"config":{"title":"Antonio Terreno","description":"Antonio Terreno's blog archive","shortBio":"","bio":"Principal Consultant at Equal Experts","author":"Antonio Terreno","githubUrl":"https://github.com/aterreno/blog","siteUrl":"https://javame.netlify.app/","social":{"twitter":"javame","medium":"","facebook":"","github":"aterreno","linkedin":"antonioterreno","instagram":"tritonitri"},"goatCounterCode":null}}}},"staticQueryHashes":["4131332129","645483741"]}