A few days ago a friend of mine had the Compiler Error Message: CS0433 error in his precompiled site, and proposed me a deal: a dinner for my help 😊, and since also Support Engineers sometimes need to eat, I accepted 😉. The exact error message was the following: The type <typename> esists in both <path 1> and <path 2>. Sometimes the error message is quite self explanatory, especially if one of the two assemblies is in BIN and the other is in the GAC (remove the one in the BIN, you don’t need two copies of the same file!), but my friend was getting the following one: Exception information: Exception type: HttpCompileException Exception message: c:\WINNT\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\customers\30216428\89bd3cad\App_Web_default.aspx.27046288.rpug8fan.0.cs(112): error CS0433: The type ‘App_Items_63_pgs_default’ exists in both ‘c:\WINNT\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\customers\30216428\89bd3cad\assembly\dl3\d1307a39\42cbc228_01a6c701\App_Web_tzn10d4k.DLL’ and ‘c:\WINNT\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\customers\30216428\89bd3cad\assembly\dl3\5493a6b9\8880bf21_01a6c701\App_Web_7jlq-fy_.DLL’ Thread information: Thread ID: 1 Thread account name: <server>\ASPNET Is impersonating: False Stack trace: at System.Web.Compilation.AssemblyBuilder.Compile() at System.Web.Compilation.BuildProvidersCompiler.PerformBuild() at System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) at System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean noAssert) at System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp, Boolean noAssert) at System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath…
-
-
Spell checker missing in Windows Live Writer beta 2
A few days ago I installed the newly released beta 2 of Windows Live Writer, and immediately noted (with a bit of disappointment) that the spell checker was missing… 🤔 After various tests (reinstalling on other machines I have, checking that all assembly versions were the right ones etc…) I decided to open a call through http://support.live.com (yes, this time I’ve been the customer and not the Support Engineer 😊). They’ve been very quick, and after a few emails I’ve been pointed to this post: the trick is use this custom launcher instead of running WindowsLiveWriter.exe directly, and I got my spell checker back and working like a charm 🤓. Following up this with the WLW support and we found that, even if I’m running only English operating systems (WinXP, Win2003 and Vista x64), all with Italian keyboard layout, and at least on the XP machine I also have the Italian .NET Framework package, the difference is made by my Regional and Language options which, as you may guess, I set to Italian; as a test I switched it to English US and the spell checker showed up in the Tools menu even without the custom launcher. It worth mentioning that…
-
How Fast Can You Type?
Here is some OT fun to start the day 😊 Fingerjig is a fun little typing game that tests your accuracy and speed for randomly selected words (each level tests a different typing skill). From How Fast Can You Type? Direct link to the test: http://www.jonmiles.co.uk/fingerjig.php Carlo
-
Broken line in ASP.NET 2.0 TreeView in IE 7
Create a very simple page in ASP.NET 2.0, add a TreeView control and set ShowLines=true; now browse the page with Internet Explorer 7: you’ll very likely see something like this: In IE 6 this looks good… 🤔 The point is that Internet Explorer 7 changes the boxing model: now a box that’s too small to accomodate ita content won’t stretch like it does on all other browsers including IE6, it will try to stay as small as possible. The problem in this case is that the DIV tags generated by the control are just 1 pixel height, which was working fine until now. Here is how the “View source” for the page above looks: 1: [...] 2: <table cellpadding="0" cellspacing="0" style="border-width:0;"> 3: <tr> 4: <td> 5: <div style="width:20px;height:1px"> 6: <img src="/TreeViewSample/WebResource.axd?d=vGK_uMmdWLf5UZMMUhv9tSAl-YQg-jrsZ90xzYAI6TE1&t=632985107273882115" alt="" /> 7: </div> 8: </td> 9: <td> 10: <a id="TreeView1n1" href="javascript:TreeView_ToggleNode(TreeView1_Data,1,TreeView1n1,'l',TreeView1n1Nodes)"> 11: <img src="/TreeViewSample/WebResource.axd?d=vGK_uMmdWLf5UZMMUhv9tfjlKbdZ_ojL4O8CY0ydKO_HFK9lO1t2cZ2AjaDIqJy_0&t=632985107273882115" 12: alt="Collapse New Node" style="border-width:0;" /> 13: </a> 14: </td> 15: <td style="white-space:nowrap;"> 16: <a class="TreeView1_0" href="javascript:__doPostBack('TreeView1','sNew Node\\New Node')" 17: onclick="TreeView_SelectNode(TreeView1_Data, this,'TreeView1t1');" id="TreeView1t1">New Node</a> 18: </td> 19: </tr> 20: [...] As you can see, the first DIV tag contains a style definition with “height:1px”; that’s the problem. And now, here is how we can…
-
The importance of breaking changes
Yesterday I closed a case about a migration issue from ASP.NET 1.1 to 2.0. The customer built this application based on ASP.NET 1.1 to generate some PDF documents on the fly on the web server, and stream the content to the client for reading; the application also served as a sort of archive browser, where online users are able to browse a list of archived PDF files. The customer thought carefully to his error handling (I think he did a very good job), and also decided to customize the standard 404 error page to something more friendly and informative for application’s users, so he configured the <customErrors> section in his web.config to point to a specific page to handle the 404 return codes. But he wanted this custom page to be displayed also if the user requested a non existing PDF file, so he had to add a new mapping in IIS console, to have requests for .pdf files go through the ASP.NET execution channel (aspnet_isapi.dll etc…) and benefit of the advanced features (including security and error handling) granted by the .NET Framework. This worked pretty well fos some time, until the customer decided to migrate his web applications to…
-
ASP.NET 2.0 application running in Firefox and not running in IE
Every now and then we get calls from a customer who decided to migrate his application from ASP.NET 1.1 to 2.0 (and sometimes those are mission-critical ones…) just changing the relevant mappings in IIS console, to then discover that the application is no longer working, or has some quite weird behavior which gives them headaches… Luckily that was not the case of the call I’ll now talk about; to test if the application could work against ASP.NET 2.0 the customer made the very quick test described above: they simply changed the mappings through IIS console and immediately notice that something was going wrong inside the app. They started troubleshooting the problem themselves and have then been able to repro the same problematic behavior inside a minimized application, just a simple .aspx page with some very basics functionalities in there (just a page with a command button and a GridView to fill with some data coming from Sql Server). This minimized repro was working fine on the dev machine with Cassini, but once installed in the target web server (Windows 2003 with IIS 6.0); when browsing with IE, the resulting HTML lacks completely the client-side Javascript to trigger the postback (while…
-
Blog title contest
As I guess many of you have noted, I’m not native English speaking so even if I try to write in a simple and appropriate form to the context of this blog (and I should apoligize for my mistakes), I sometimes find miself wondering how to exactly express in English what I have in mind and is of course easy to me to say in Italian… Well, one of the beauties of working in a virtual team spread across different EMEA countries (and also the possibility to get in touch with people practically from all over the world, whereaver Microsoft has an office), is the possibility of get in touch with all of those different people, languages and cultures quite easily (such as emailing, IM or ringing someone). So, taking advantage of this opportunity, I emailed Doug to ask his opinion on the title of my blog, because I’ve been wondering for a while now it the title really makes sense in English 🤔. I didn’t want to use the word “ramblings” because it sounded a bit stale, and I tried to find something with a similar meaning (“rambling from a developer”) but a bit more refined… but how does it…
-
Italian MS bloggers, a new community is born
Last Wednesday I took part to the first (non) meeting of the new-born Italian bloggers community: we were a bunch of people united by the passion for technology, who happen woking in the same company and whom share an interest (if not a passion, in some cases) for sharing their experiences and knowledge in their blogs. We are just at the beginning of the jurney, so if you can read Italian and what to know more, start having a look at the Italian MS bloggers list😊 Carlo
-
Murphy’s law (i.e. never play with your demos right before a presentation!)
Or at least if you do, just make sure to have a backup copy of the working demo in a safe place for a quick last minute restore! 😉 (if you are just curious, you can learn more in Wikipedia and on the Murphy’s law site 😊) Carlo
-
The public/private hotfix debate
Every now and then the question comes back in the limelight: “Why some hotfixes are publicly available to download, but most of the times I have to call CSS to get one?” and “Wouldn’t be easier if we could just download the fix ourselves? At least we would save time, since we’ll get it anyway from CSS” and again “Who decides if a fix has to be public or private? How?” etc…, feel free to add more if you have (and I’m sure some of you do! 😉). I discussed this topic internally with my colleagues (both Support Engineers and Escalation Engineers) in CSS EMEA and of course there are some different views on it, but there is also a common understanding about some of the principles behind the policy Microsoft adopted. Those “private” fixes do not undergo the same amount of tests that Service Packs or “public” fixes have to pass, and this is the main reason (basically: costs); one of the parameters the Product Team(s) takes into account when producing a fix is the business impact that issue is having (or potentially will have) on customer’s applications, but also the risk of introducing regression bugs, the amount of code to…