I created a new IIS website with ApplicationPoolIdentity as the identity and .NET framework set to v4.0. In my hosts file I set my localhost to point to my test.dev domain (127.0.0.1 test.dev). When I tried viewing the site all I got back as a blank page.
What I tried:
1. Installing all IIS components as I thought I might have missed some - this didn't help
2. Add full control permissions to my web folder for the ApplicationPoolIdentity (http://stackoverflow.com/questions/7334216/iis7-permissions-overview-applicationpoolidentity) - this didn't help
3. Registered .NET 4 with this command: C:\Windows\Microsoft.NET\Framework\v4.0.30319 C:\Windows\Microsoft.NET\Framework\v4.0.30319> aspnet_regiis.exe -i - This WORKED!!!
Friday, 21 February 2014
Wednesday, 12 February 2014
Umbraco render macro within macro
I wrote this helper method to easily render macros within other macros when using razor (cshtml) views. This also allows the passing in of parameters. This is an alternative to RenderMacroContent which didn't seem to work for me.
This is the code that wasn't working:
public static string RenderMacro(string alias, int nodeId, Dictionary<string string=> parameters)
{
var macroEngine = new RazorMacroEngine();
var macro = new MacroModel();
macro.ScriptLanguage = "cshtml";
macro.ScriptName = alias + ".cshtml";
foreach (var parameter in parameters)
{
macro.Properties.Add(new MacroPropertyModel(parameter.Key, parameter.Value));
}
return macroEngine.Execute(macro, new umbraco.NodeFactory.Node(nodeId));
}
This is the code that wasn't working:
umbraco.library.RenderMacroContent(string.Format("</?UMBRACO_MACRO>", alias, args), model.Id)
Friday, 26 July 2013
StyleCop and R# Integration
StyleCop and R# Integration
You can either write
your own rule library or use an existing extension like StyleCop+.
I’ve used StyleCop+ as it holds common rules and is an open source community project
so adding to it is easy. I’ve investigate the StyleCop+ rule SP2101
MethodMustNotContainMoreLinesThan below.
Versions
Visual Studio 2010
R# 5.1.3000.12 and 8.0.14.856
StyleCop 4.7.44.0 and 4.7.45.0
StyleCop+ 1.8
R# 8 and StyleCop with StyleCop+
R#8 will NOT work with StyleCop 4.7.44.0 only 4.7.45.0. If you want to use StyleCop+ 1.8 on top of this you need to change the assembly binding redirects in the Visual Studio 2010 config file (C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe.config).
Make sure VS is closed and the StyleCopPlus.dll in C:\Program Files (x86)\StyleCop 4.7 has been deleted.
Under this XML...
Add this XML...
Place the StyleCopPlus.dll back in C:\Program Files (x86)\StyleCop 4.7 and Unblock it. Now open VS and everything should work!
R# 8 and StyleCop with StyleCop+
R#8 will NOT work with StyleCop 4.7.44.0 only 4.7.45.0. If you want to use StyleCop+ 1.8 on top of this you need to change the assembly binding redirects in the Visual Studio 2010 config file (C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe.config).
Make sure VS is closed and the StyleCopPlus.dll in C:\Program Files (x86)\StyleCop 4.7 has been deleted.
Under this XML...
<runtime>
<UseSmallInternalThreadStacks enabled="true"/>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="StyleCop" publicKeyToken="f904653c63bc2738" />
<bindingRedirect oldVersion="4.5.0.0-4.5.99.99" newVersion="4.7.45.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="StyleCop.CSharp" publicKeyToken="f904653c63bc2738" />
<bindingRedirect oldVersion="4.5.0.0-4.5.99.99" newVersion="4.7.45.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="StyleCop.CSharp.Rules" publicKeyToken="f904653c63bc2738" />
<bindingRedirect oldVersion="4.5.0.0-4.5.99.99" newVersion="4.7.45.0" />
</dependentAssembly>
Place the StyleCopPlus.dll back in C:\Program Files (x86)\StyleCop 4.7 and Unblock it. Now open VS and everything should work!
R# Integration
With these versions installed you can edit the StyleCop+
rule SP2101 to reduce the lines from 120 to 20 to test its working. Open Settings.StyleCop
file (Located in folder of project(s) or solution) then go
to the StyleCop+ tab and select the rules to edit.
Open the R# options dialog and go to Code Inspection > Inspection Severity
and find the StyleCop+ rule to show as an error.
An you’re done!
Build Integration
You can use the MSBuild targets file (e.g. C:\Program
Files (x86)\MSBuild\StyleCop\v4.7\StyleCop.Targets) provided with
StyleCop to fail the build in Visual Studio for any
of the projects you set this up for. The problem with this is all
violations are set to error and you can’t target individual rules to break the
build.
The solution I think is to use TeamCity to read the XML
violations file (e.g. \obj\Debug\StyleCopViolations.xml)
generated after the build and then fail the CI build if it finds an individual
rule violation. For example if you find this in the file:
<Violation LineNumber="19" Source="C:\DevelopmentSVN\ATMS\Trunk\Isotrak.Zinc\Isotrak.Zinc.ATMS\Common\MapModelHelper.cs" RuleNamespace="StyleCopPlus.StyleCopPlusRules" Rule="MethodMustNotContainMoreLinesThan" RuleId="SP2101">Method body must not contain more than 20 code
lines (now 25).</Violation>
Friday, 26 April 2013
Publish in Umbraco 4.11.4 load balanced environment doesn't refresh the umbraco.config file
I has running into this issues when publishing content on my staging site. Nothing would refresh the umbraco.config file except manually deleting it. Until I discovered that our live server settings for load balancing was effecting the publish.
In the /config/umbracoSettings.config file on staging I set:
<distributedcall enabled="true"></distributedcall>
The moment I did this my publish started working as it wasn't attempting the load balance on a non-load balanced environment.
In the /config/umbracoSettings.config file on staging I set:
<distributedcall enabled="true"></distributedcall>
The moment I did this my publish started working as it wasn't attempting the load balance on a non-load balanced environment.
Thursday, 18 April 2013
How to branch/merge with TFS 2010
Below is a simple explanation of TFS branching and merging for one branch and one merge.
Branching
- Make sure you have all files check in or shelved
- Open Visual Studio 2010 Team Explorer panel
- Open your project > Source Control
- Make sure your folder structure is like this:
- BuildProcessTemplates
- Main
- All your project source code
- If your source code is not in this folder structure above then:
- Create a Main folder
- Right-click individually on each folder/file and select Move and choose Main as the destination (Can’t multi-select and move for some reason)
- Your history will be kept
- Check in all your changes
- Now right-click on the Main folder and select Branching and Merging > Branch
- Now in Target Branch Name type the name of your branch e.g. FeatureBranch1
- Click OK (keep default checkbox selections)
- Wait until branching has completed and then check in all changes
You will now have a Main branch e.g. C:\Dev\Project\Main, and a FeatureBranch1 branch e.g. C:\Dev\Project\FeatureBranch1. So open the FeatureBranch1 solution and make all your branch changes there. Then when you ready you can merge this branch into Main.
As I rule we should label our check-ins for:
- The main like this Project: Then the check in description e.g. Puma: Fixed menu layout
- The branch like this Project\FeatureBranch1: Then the check in description e.g. Puma\FeatureBranch1: New regions implemented
Merging
- Make sure you have all files check in or shelved
- Open Visual Studio 2010 Team Explorer panel
- Open your project > Source Control
- Get latest on the Main branch
- Now right-click on the branch folder e.g. FeatureBranch1 and select Branching and Merging > Merge
- Source branch should be FeatureBranch1 and Target branch should be Main – Click Next
- Version type should be Latest Version – Click Next
- Click Finished
- The merge will now occur and bring up any conflicts - Resolve the conflicts (easier said than done)
- Check in the merge when you confident it works
Shane
Thursday, 28 March 2013
Safari error not showing CSS and images
The Problem
I was getting strange rendering behaviour on Safari 5.1.7 for Windows 7 when viewing my website. The page basically looked like it was not showing CSS or the images. The website rendered fine in all other browsers on Windows 7 like Chrome, IE and Firefox.
Troubleshooting
So what was the problem with Safari? Initially I thought it was due to the Safari browser on Windows, and the fact that Safari was no longer being supported on Windows, but this was not that case as the error was also occurring on OSX Safari 6.0.3.
Then I tried viewing my local development site in Safari on Windows and the site rendered correctly. So the difference between my development site and the staging environment as our staging environment required a IIS username and password to view the site. Hence something was going wrong with the authentication in Safari and this caused the CSS and images to not download correctly.
The developer web inspector network tab showed 302 status codes and undefined types which in turn caused the JavaScript to break and throw console errors.
The Solution
Changing IIS fixed this issue for me.
1. Open IIS
2. Select your web site
3. Open Authentication under the IIS section
4. Make sure you only have Basic Authentication enabled and everything else is disabled
The error was due to a conflict with my Authentication settings:
Challenge-based and login redirect-based authentication cannot be used simultaneously
Hope this helps someone out there!
I was getting strange rendering behaviour on Safari 5.1.7 for Windows 7 when viewing my website. The page basically looked like it was not showing CSS or the images. The website rendered fine in all other browsers on Windows 7 like Chrome, IE and Firefox.
Troubleshooting
So what was the problem with Safari? Initially I thought it was due to the Safari browser on Windows, and the fact that Safari was no longer being supported on Windows, but this was not that case as the error was also occurring on OSX Safari 6.0.3.
Then I tried viewing my local development site in Safari on Windows and the site rendered correctly. So the difference between my development site and the staging environment as our staging environment required a IIS username and password to view the site. Hence something was going wrong with the authentication in Safari and this caused the CSS and images to not download correctly.
The developer web inspector network tab showed 302 status codes and undefined types which in turn caused the JavaScript to break and throw console errors.
The Solution
Changing IIS fixed this issue for me.
1. Open IIS
2. Select your web site
3. Open Authentication under the IIS section
4. Make sure you only have Basic Authentication enabled and everything else is disabled
The error was due to a conflict with my Authentication settings:
Challenge-based and login redirect-based authentication cannot be used simultaneously
Hope this helps someone out there!
Labels:
302,
5.1.7,
Authentication,
Codes,
developer,
error,
IIS,
IIS 7.5,
Network Tab,
no CSS,
no images,
Renders,
Safari,
Safari for Windows,
Undefined,
Web Inspector,
windows 7
Wednesday, 20 March 2013
Visual Studio 2010 publish failing with error Unable to add XYZ to the Web site. Access is denied (550).
I started receiving this error when trying to publish through Visual Studio 2010:
Unable to add XYZ to the Web site. Access is denied (550).
The reason being someone had manually FTP-ed files to the website and they had read-only set to true.
Resolution:
Make the folders/files not read-only - easy :)
Unable to add XYZ to the Web site. Access is denied (550).
The reason being someone had manually FTP-ed files to the website and they had read-only set to true.
Resolution:
Make the folders/files not read-only - easy :)
Subscribe to:
Posts (Atom)


