Microsoft.Ajax: Coverage of installation issues...for Beta 1
Up until the release of the Beta I was pretty religious of downloading and testing the daily bits from CodePlex. Low and behold at 5:30 AM PCT I saw the announcements for the new BETA / RTM. Which brings me first to just some constructive criticisms:
1. Codeplex provides a way to post "Issues".
- No way a submitter can track what they submit.
- No email confirmation if the 'assignee' of the issue needs additional info, screenshots, code etc.
- No way to set which version (unless you post it) of the release / source code version you are working against.
- No method to reopen a 'ticket' that you have submitted.
This basically results in almost the same scenario that the forums provide. While you may or may not get feedback there is no way in telling if an issue / bug you address is actually resolved or added to the list.
2. I have no method to use the support feature of the product (ie: VSTS) as it as 'company licensed version' - in my case since I do contracty work with Microsoft, most all my dev stuff due to contract work is off common shares as the laptops I use are explicit for that particular company (That is a good justification for having 15 laptops I guess but corporate security is important to me and my clients). So, I can't post issues since the PID is 'universal' and after 15 pages of inputs on the support web page I only get 'all support options have been used'. That leaves that official channel (for me at least) as unattainable...
3. Forums: They are kinda like a free for all. Its great that the 'community' thing goes on but again no way to track issues or bugs less by whether someone that has a "ASP.Net Team" logo on their profile and they have stated "Got it working on it".
So, all in all - I know they track these kinds of things - but it would be great to have either improvements to CodePlex or some actual forum where the ASP.Net Team copies over issues from forums they see as bugs or issues into a system that we can view and track.
The reasons I mention this is not a slam on the team that provides Ajax for us, just merely as a result of the discussion I had with Matt Gibbs. I brought up "I know I am not the only person having this issue - just I am the first to bring it up". Furthermore, usually - once someone brings something up and someone responds to it - suddenly people come out of the woodworks saying they too had the problem. Case in point was the post I authored about the install of Ajax and that it didn't appear in the .Net tab for adding references. Ended up being an issue with the installer that did not add the proper registry key for Visual Studio... but I wasn't alone in the issue and eventually the post was one of my own personal most replied to posts (although it did get off track on GAC issues and ISPs... nonetheless)...
So the real question, if you do not have direct access to the team at Microsoft - what really is the best or preferred medium?
____________________________________________________________
So let's just recap some issues that you may experience either installing Microsoft.Ajax, CTP, and AjaxToolKit:
1. Do I really HAVE TO INSTALL THE Microsoft.Web.Extensions.dll in the GAC - what if I have a ISP that Limits ....
UnOfficially - I can tell you from using CASPOOL - that the dll is installed with full trust in the GAC. This means if you copy the file to your \BIN directory and do not explicitly set any
<trust level="Medium" originUrl="" /> settings in your Web.Config. It will work - at least with the Oct BETA release. I run it with the trust level as FULL but I control my own web servers. Your mileage may vary now or in subsequent releases.
Personally, until the product has matured and is actually integrated into .Net <insert version here> then I would prefer to be able to use it as I would any other component like FCKeditor etc... Especially considering that the odds are you will not be using it alone but with the CTP and AjaxToolKit. Simply makes debugging and deployement easier.
2. I installed it and supposedly its in the GAC but Visual Studio doesn't allow me to reference it from the .Net Tab of the Add References.
Solution: [Quoted from ASP.Net forums on my original post]
This is a bug - when we install, we don't add the registry entry necessary for Visual Studio to find and add the assembly to the Add References dialog. VS uses the file system to find assemblies.
To see it, add the following registry key
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\AssemblyFolders\ASP.NET AJAX 1.0.61025
and set its default value to the directory in Program Files that contains the DLL. Note: This can't include %Program Files%, and must have the physical drive letter and location. For example, on the default C: drive installation, it is
c:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025
We'll fix this in the next refresh.
Thanks,
Shanku Niyogi
Furthermore, if you perform the changes and VS is active - you will need to close ALL INSTANCES of VS and relaunch - and then the selection will be available.
Additionally: Please make sure you have deleted all other previous ATLAS or Microsoft.Wev*.dlls from your \BIN directory. Trust me - it will wreck havok.
3. Speakng of the above. Sometimes you may have issues where you recompile and have issues or there are ambigious references...such as "
I just downloaded the new Ajax Beta 1 and reinstalled everything. However I am now getting the following error. How do I make sure that I am referencing the correct file?
Error 1 The type 'Microsoft.Web.UI.ScriptManager' exists in both 'c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\samplewebsite\505304cd\917b96f4\assembly\dl3\08bfe3c3\00c16ce6_17d9c601\Microsoft.Web.Atlas.DLL' and 'c:\WINDOWS\assembly\GAC_MSIL\Microsoft.Web.Extensions\1.0.61025.0__31bf3856ad364e35\Microsoft.Web.Extensions.dll' C:\Documents and Settings\rlc\My Documents\Visual Studio 2005\downloads\SampleWebSite\Accordion\Accordion.aspx 13"
Resolution:
1. Delete prior Atlas dlls (including toolkit - these will be in your apps bin folder)
2. Remove all refs in solution / projects that ref any of the Atlas and toolkit
3. Copy over the new ajaxToolkit Dlls, and the microsoft.web.preview.dll to your \bin
4. do a clean solution command (right click on the solution explorer at top level - option will be there...
5. Add in the: Microsoft.Web.Extender and Microsoft.Web.Preview references. Note in some cases when you add the Microsoft.Web ref from the references _> .Net Tab it will be missing see this post (http://forums.asp.net/thread/1435433.aspx) and add the entry in your Registry. You will need to then close out of VS and reopen for the change of the registry to take effect.
6. Then Using the add references again - use the browse - and add in the toolkit and preview dlls
BUILD solution (don't do the rebuild)... - that should ensure you get rid of any dual refs and get rid of any of the ambiguities... The Clean solution also gets rid of the cached entries which sometimes are the cause for the error...Which will be the case where your output for the debug and releases are not directly in a single \bin folder. In other words each project in the solution all have seperate \bin directories. Again, personally - on my dev machine I have all builds just compile to a single \bin directory. I simply found that during rebuilds if errors occurred and some items built and others didn't due to depencies - then two different versions of referenced dlls would be indicated (much like the error above). Again, I am not a Microsoft represetative - these are just my personal suggestions..
4. Some people have reported severe Intellisense errors with the <asp:SomeAjaxFeature> and site does not build.
If you have the correct entries in your web.config - there are issues where Visual Studio simply doesn't recognize the tags which means design view is out of the question. Considering we all use Intellisense to kinda map what we can assign - can be a bad thing. In the web.config Ipersonally name all the TAG references as ajax (others use atlas). This seems to resolve the problem for a majority and the ASP.Net Team has noted this is an issue. If you leave the default - and you can live without the Intellisense features - merely close all ajax related pages then do the build site...(or save all which is essentially the same thing)....
Additionally: I never experienced these issues. BUT I added the dlls to my toolbox and use the toolbox to drag and drop. Mileage may vary...but it does save one step - having to add whatever < % @ Register > tag required...
5. What real changes do I have to make to the web.config?
Here is an example from an ajax enabled site that works. Its an actuall application that uses its own section groups etc... so it should be a decent example on how to properly set it up if you are using something like Community Server, DNN etc.. my example is based on my own CSK 2.0 version..
|
<?xml version="1.0"?> <configuration> <configSections> <sectionGroup name="Cavalia"> <section name="Isp" type="Cavalia.CommunitiesSectionHandler, Core Application"/> <section name="pagePaths" type="Cavalia.CommunitiesSectionHandler, Core Application"/> <section name="database" type="Cavalia.CommunitiesSectionHandler, Core Application"/> <section name="services" type="Cavalia.CommunitiesSectionHandler, Core Application"/> </sectionGroup> <sectionGroup name="microsoft.web" type="Microsoft.Web.Configuration.MicrosoftWebSectionGroup, Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" > <sectionGroup name="scripting" type="Microsoft.Web.Configuration.ScriptingSectionGroup, Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"> <sectionGroup name="webServices" type="Microsoft.Web.Configuration.ScriptingWebServicesSectionGroup, Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" > <section name="jsonSerialization" type="Microsoft.Web.Configuration.ScriptingJsonSerializationSection, Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false"/> <section name="profileService" type="Microsoft.Web.Configuration.ScriptingProfileServiceSection, Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false"/> <section name="authenticationService" type="Microsoft.Web.Configuration.ScriptingAuthenticationServiceSection, Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false"/> </sectionGroup> </sectionGroup> </sectionGroup> </configSections> <Cavalia>
<pagePaths> <add key="basePage" value="/communityDefault.aspx" /> <add key="baseService" value="/communityService.asmx" /> <add key="baseRSSFeed" value="/communityRSS.aspx" />
</pagePaths>
<database> </database> <services> <add key="enableServiceTimer" value="true" /> </services> </Cavalia> <system.web> <trace writeToDiagnosticsTrace="false" enabled="false"/> <trust level="Full" originUrl="" /> <pages> <controls> <add tagPrefix="ajax" namespace="Microsoft.Web.UI" assembly="Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> <add tagPrefix="ajax" namespace="Microsoft.Web.UI.Controls" assembly="Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> <add tagPrefix="ajax" namespace="Microsoft.Web.Preview.UI" assembly="Microsoft.Web.Preview"/> <add tagPrefix="ajax" namespace="Microsoft.Web.Preview.UI.Controls" assembly="Microsoft.Web.Preview"/> </controls> <tagMapping> <add tagType="System.Web.UI.WebControls.CompareValidator" mappedTagType="Microsoft.Web.UI.Compatibility.CompareValidator, Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> <add tagType="System.Web.UI.WebControls.CustomValidator" mappedTagType="Microsoft.Web.UI.Compatibility.CustomValidator, Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> <add tagType="System.Web.UI.WebControls.RangeValidator" mappedTagType="Microsoft.Web.UI.Compatibility.RangeValidator, Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> <add tagType="System.Web.UI.WebControls.RegularExpressionValidator" mappedTagType="Microsoft.Web.UI.Compatibility.RegularExpressionValidator, Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> <add tagType="System.Web.UI.WebControls.RequiredFieldValidator" mappedTagType="Microsoft.Web.UI.Compatibility.RequiredFieldValidator, Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> <add tagType="System.Web.UI.WebControls.ValidationSummary" mappedTagType="Microsoft.Web.UI.Compatibility.ValidationSummary, Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> </tagMapping> </pages> <!-- Set compilation debug="true" to insert debugging symbols into the compiled page. Because this affects performance, set this value to true only during development. --> <compilation debug="true"> <assemblies> <add assembly="Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> </assemblies> </compilation> <customErrors mode="Off"/> <!--<trace enabled="true" pageOutput="true" requestLimit="40" localOnly="true"/>-->
<httpHandlers> <remove verb="*" path="*.asmx"/> <remove verb ="*" path="*.axd"/> <add path="trace.axd" verb="*" type="System.Web.Handlers.TraceHandler" validate="true" /> <add path="*source.axd" verb="*" type="System.Web.Handlers.AssemblyResourceLoader" validate="true" /> <add path="*.axd" verb="*" type="System.Web.HttpNotFoundHandler" validate="true" />
<add verb="*" path="*.asmx" validate="false" type="Microsoft.Web.Script.Services.ScriptHandlerFactory, Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> </httpHandlers> <httpModules> <add name="CommunitiesModule" type="Cavalia.CommunitiesModule"/> <add name="WebResourceCompression" type="Microsoft.Web.Handlers.WebResourceCompressionModule, Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> <add name="ScriptModule" type="Microsoft.Web.UI.ScriptModule, Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> </httpModules>
<authentication mode="Forms"> <forms loginUrl="Users_Login.aspx" timeout="555555555"/> </authentication> <httpRuntime maxRequestLength="1000" /> <webServices> <protocols> <add name="HttpGet"/> </protocols> </webServices> </system.web> <microsoft.web> <scripting> <webServices> <!-- Uncomment this line to customize maxJsonLength and add a custom converter --> <!-- <jsonSerialization maxJsonLength="500"> <converters> <add name="ConvertMe" type="Acme.SubAcme.ConvertMeTypeConverter"/> </converters> </jsonSerialization> --> <!-- Uncomment this line to enable the authentication service. Include requireSSL="true" if appropriate. --> <authenticationService enabled="true" requireSSL = "false"/> <!-- Uncomment these lines to enable the profile service. To allow profile properties to be retrieved and modified in Atlas applications, you need to add each property name to the setProperties and getProperties attributes. --> <!-- <profileService enabled="true" setProperties="propertyname1,propertyname2" getProperties="propertyname1,propertyname2" /> --> </webServices> </scripting> </microsoft.web> <system.webServer> <validation validateIntegratedModeConfiguration="false"/> </system.webServer> <appSettings> <add key="LogExceptions" value="true" /> <add key="sendSysLogMessages" value ="false" /> <add key="exceptionLogConnString" value="server=localhost;database=WebAppLogs;User id=;pwd=> <add key="emailAddresses" value="" /> <add key="smtpServer" value="" /> <add key="fromEmail" value="" /> <add key="detailURL" value="http://localhost/exceptionlogger/report.aspx" /> <add key="sysLogIp" value="localhost" /> </appSettings>
</configuration>
|
I'll add another segment to this to cover some of the actual issues in a subsequent post. But, hopefully this helps resolve some imediate issues.